您的位置:首页 > 运维架构 > Linux

linux线程异常保护

2015-11-03 17:20 246 查看
用多线程的时候要添加thread库, -lpthread

创建线程 create_thread

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

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

pthread_cleanup_push();

//要保护的操作

pthread_cleanup_pop();

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

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

暂时记录到这里,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: