我在Linux(CentOS 5.3)产生多个线程的C++程序,这些线程在无限循环中执行作业并在特定的分钟内休眠。 现在我不得不取消正在运行的线程,以防万一有新的配置通知进来并且新启动一组新的线程,为此我已经使用了pthread_cancel。 我观察到的结果是,即使接收到取消指示,线程也没有停止,甚至有一些睡眠线程在睡眠完成后出现。使用pthread_cancel取消线程:很好的做法或不好
由于行为不是所期望的,所以在所提到的场景中使用pthread_cancel会引发关于做法好坏的问题。
请评论上述场景中的pthread_cancel用法。
+1为避免取消,这是最快的方式,内存泄漏,更糟。问礼貌地:) :) – 2011-01-21 18:56:02
好像我必须改变使用共享标志终止线程的逻辑。 但是在其他说明我的程序有线程取消状态设置为异步,我相信,这是相关的立即终止线程后调用各自的清理处理程序。 – Mandar 2011-01-23 14:09:23