P:POSIX:POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称
1)线程的创建与回收
pthread_create:主线程创建一个新的线程,线程的核心是线程函数。函数体就是线程函数。
OS调度线程的时候其实就是调用这个函数,
线程退出的时候要回收线程
pthread_join:回收线程函数,线程结束的时候调用这个,主线程等待回收子线程的,也是会被阻塞住的。
pthread_detach:分离子线程,分离之后,子线程自己回收自己,主线程不管(不用阻塞等待)子线程,不用回收他了。
线程取消:创建好多线程之后,一个线程有可能被另外一个线程终止,取消的时候就是th,thread_t类型的。
一般是在主线程中取消子线程,强制杀死,
pthread_cancel:线程取消:一般是在主线程中取消子线程,强制杀死。
pthread_cancelstate:子线程设置自己是否允许被取消
pthread_canceltype:上面那个设置成enable这个才有意义,子线程收到cancel立即终止或者等到能死
线程函数退出相关的
pthread_exit:线程结束自己最正规的方式,返回值会返回给join(等待回收)
return:也可以退出,就是普通函数,exit不可以,子线程属于线程一部分,用exit是整个线程都返回了。
清理函数:线程同步时,需要用到锁(信号量),线程之间也要有锁机制,但是
pthread_cleanup_push:压栈,进栈
pthread_cleanup_pop: 弹栈,出栈
保证一定会执行--
获取线程ID 标识这个线程的
pthread_self:获取当前线程的ID
常用的就是create join/detach
return/pthread_exit
push
pop