使用异步终止的pthread_cancel的替代方法

时间:2015-03-23 16:00:33

标签: c++ linux asynchronous pthreads fork

我理解使用pthread_cancelPTHREAD_CANCEL_ASYNCHROUNOUS异步取消线程仅适用于纯计算而不适用于复杂功能。如果我们使用PTHREAD_CANCEL_DEFERRED,如果函数不包含pthread取消点,尤其是调用第三方库,则无法保证可以完成此操作。

1)我看到一些使用进程间通信的建议fork子进程,kill发生超时时。

2)还有评论说我们应该使用pthread_create和共享变量来优雅地突破/退出循环并执行清理。如果函数本身是长时间阻塞调用(例如需要几秒钟),我不太确定如何实现它。

哪种方法更好,我该如何实施?欢迎任何建议。

0 个答案:

没有答案