linux线程异常保护

来源:互联网 发布:mmd常用姿势数据下载 编辑:程序博客网 时间:2024/06/05 05:50

用多线程的时候要添加thread库, -lpthread

创建线程 create_thread

如果线程正常退出,不会存在问题。如果线程非正常退出,那么线程中申请的资源就不能正常释放,申请内存造成内存泄漏,锁和信号量等操作容易造成死锁。


利用保护机制可以避免上述问题:

pthread_cleanup_push();


//要保护的操作


pthread_cleanup_pop();


要保护的操作只要有终止的动作(正常退出pthread_exit(),异常终止,return 除外),就会调用相应的回调函数中的清除动作。


回调函数中可以做 清理的工作。

暂时记录到这里,

0 0