线程和线程同步(pthread)
pthread_create()
pthread_join()的作用是接受返回值
主线程可以用pthread_exit();来按线程的方式退出
pthread_t
pthread_self () 取当前线程的标识符
pthread_equal() 比较
数据的键 : pthread_key_t key; 线程数据( TSD )TSD 类似于全局变量,但是线程私有的
pthread_key_create()该函数成功时,份配的建放在 key 中,必须保证 key 指向的内存区有效 。
pthread_key_destructor() 用来释放不再需要的内存。
pthread_key_delete()
pthread_setspecific() 设置和某个线程数据键绑定在一起的线程数据 (一般是指针)
pthread_getspecific() 获取绑定在线程数据键上的值,并在指定的位置存储值
sched cpu线程的优先权
sched_yield() 让出线程
pthread_setschedparam()设置线程优先权
pthread_getschedparam()取得线程优先权
kill 向线程发信号
pthread_kill()
pthread_sigmask()
pthread_atfork()
exit
pthread_exit() 分离的目的是不管线程什么情况直接对资源清理,不分离可以保留
pthread_exit( &status );终止当前线程,所有绑定在线程键上的内存将释放。如果当前线程是未分离的,该线程的标识符和推出代码( status )被保留,直到其它线程用 pthread_join() 等待当前线程的终止。如果当前线程是分离的, status 被忽略,线程标识符立即收
pthread_cond_wait 条件等
attr 线程属性
pthread_attr_init 初始化一个线程属性对象,属性值是缺省值,占用内存由线程库分配。
属性对象的缺省值:scope (线程域) PTHREAD_SCOPE_PROCESS ; Detachstate (分离状态) PTHREAD_CREATE_JOINABLE;Stackaddr (堆栈地址) NULL Stacksize (堆栈大小) 1Mb; priority (优先级) 父进程优先级 ; Inheritsched ( 继承调度优先级)PTHREAD_INHERIT_SCHED; schedpolicy (调度策略) SCHED_OTHER
创建线程时,如果指定这个线程为分离线程,一旦这个线程终止,他的线程标识符和其他相关的资源可以立即被使用。如果不需要等待某个线程终止,可以把它设定为分离