天天看点

linux C 多线程/线程池编程 同步实例

在多线程、线程池编程中经常会遇到同步的问题。

1.创建线程

  函数原型:int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);

  参数:thread指向线程id的指针;attr指向线程属性的指针;第三个为执行的方法的函数指针;arg指向给方法传递的参数的指针。

2.互斥变量

  (1)互斥变量   pthread_mutex_t

  (3)互斥变量解锁  int pthread_mutex_unlock(pthread_mutex_t *mutex);

3.多线程/线程池实例

下面是一个Linux C多线程同步取任务的操作,设定任务总量用MAX_JOB表示,当前任务编号用current_job表示。

文件名:a.c

编译:gcc -lpthread a.c -o a

执行输出:./a

linux C 多线程/线程池编程 同步实例