Linux C多线程学习

linux c多线程库函数的头文件为pthread.h,链接库参数为-lpthread。

线程创建函数:pthread_create,通过这个函数调用其他函数作为一个线程,被调函数的参数也在pthread_create中给出。注意这里只能有一个参数。如果被调函数多参的话,需要使用其他方法实现,比如封装成一个结构体参数,或者将参数设置为全局变量。

线程互斥(mutex)

互斥量(MUTual Exclusion)是线程同步的一种方法。一般用法如下:

首先定义互斥信号量,并初始化:

pthread_mutex_t count_mutex = PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_init(&count_mutex, NULL);

在线程函数中加锁和解锁:

pthread_mutex_lock(&count_mutex);

... some process.

pthread_mutex_unlock(&count_mutex);

这样中间的处理就是原子的。

tagged by
comments powered by Disqus