名
/**********************************************
*
* Linux
下的 POSIX线程
*
**********************************************/
pthread
是一种轻量级进程的移植性实现,线程调度由内核完成,每个线程都有一个自己的进程号
。
使用pthread时,源码中要加入#include ,编译时要加入-lpthread,用到libpthread.a库
。
如果要查看man信息,需要安装glibc-doc
。
1.
创建线程
int pthread_create(pthread_t* A, pthread_attr_t* B, C , (void*)D );
A
为指向线程标识符的指针,B为线程属性,可以取NULL,C为调用的函数名,D为调用函数的参数
不同线程的参数A和D必须不同,否则可能出错
。
2.
int pthread_join(pthread_t A, void** thread_ret);
挂起当前线程,直到A指定的线程被中止
。
void pthread_exit(void* retval);
退出线程
3.
取消线程
pthread_cancel(pthread_t thread);
向目标线程发送cancel信号,目标线程可以忽略、立即停止或者继续运行至取消点cancellation-point
。
取消点:可引起系统阻塞的系统调用
。
另外,如果线程处于无限循环中,并且没有取消点,那么必须加上pthread_testcancel()调用
。
%26amp;#62;%26amp;#65279;4.
创建互斥锁:
静态方式
pthread_mutex_t mutex= PTHREAD_MUTEX_INITIALIZER;
PTHREAD_MUTEX_INITIALIZER