《多线程编程进阶.ppt》由会员分享,可在线阅读,更多相关《多线程编程进阶.ppt(10页珍藏版)》请在三一办公上搜索。
1、多线程编程 进阶,仅执行一次的线程,pthread_once_t once=PTHREAD_ONCE_INITint pthread_once(pthread_once_t*once,void(*once_routine)(void);由于函数原型的原因,在设计程序时要保证仅执行一次的线程不需要参数.,作用,初始化动态初始化时,初始化两次可能会出现错误与初始化相对,就是释放资源.比如free 或者pthread_key_delete,线程取消,取消的作用:减少资源占用增加系统响应能力取消的状态分取消状态与取消类型,线程取消,状态禁用启用PTHREAD_CANCEL_DISABLEPTHREAD
2、_CANCEL_ENABLE类型推迟-PTHREAD_CANCEL_DEFERRED异步-PTHREAD_CANCEL_DELIVEROD可以调用pthread_cancel_setcancelstate()和pthread_cancel_setcanceltype()进行修改.,异步取消,线程取消后的资源清理,取消是线程结束状态的一种.它和pthread_exit()退出的线程一样,会调用清理函数voidpthread_cleanup_push(void(*clean_routine)(void*),void*arg);voidpthread_cleanup_pop(int execute);,标准I/O的同步,标准I/O使用互斥量机制进行同步.但并不是使用MUTEX标准I/O有自己的同步函数,补遗,非阻塞式互斥.pthread_mutex_trylock()phtread_cond_timewait()信号量的丢失问题及对应编程策略,简单的加锁算法,加锁算法是为了让死锁的情况出现的更少trylock链锁层次加锁,