第十一章 线程
1..pthread_t tid;
pthread_equal
pthread_t pthread_self(void);
int pthread_create()
FreeBSD使用指向线程数据结构的指针作为他的线程id
linux 不能在线程调度上做任何的假设
2..线程的终止
void pthread_exit(void*);
a..从启动例程中返回
b..被同进程中其他线程取消
c..线程调用pthread_exit
3.. int prhread_join(pthread_t thread, void **rval_ptr)
调用线程将阻赛,直到指定的线程终止.
rval_ptr可以为NULL,此时,不返回终止状态.
4..int pthread_cancel(pthread_t tid);
取消同一进程中的其它线程
5..线程清理程序
void pthread_cleanup_push(void (*rtn)(void*), void *arg);
void pthread_cleanup_pop();
两个要成对出现
6..pthread_detach(tid) 使线程进入分离状态
7..线程同步
方法1:互斥
a.互斥的初始化
int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthred_mutexattr_t *testrict attr);
int pthread_mutex_destroy(pthread_mutex_t *mutex);
b.互斥的使用
int pthread_mutex_lock(pthread_mutex_t *mutex);
int pthread_mutex_trylock(pthread_mutex_t *mutex);//尝试枷锁,成功返回
int pthread_mutex_unlock(pthread_mutex_t *mutex);
方法2:读写锁
方法3:条件变量
方法2:读写锁
第十二章..线程控制
1..线程属性
2..