Linux,pthreads - 发送停止条件

时间:2012-08-03 06:08:18

标签: linux pthreads posix

我正在Linux下使用phtreads和C编写应用程序。 main函数启动一堆线程(最多20个)。然后,根据某些标准,我需要立即停止所有线程。每个线程都在一些条件循环下运行,如:

while (state) {....}

所以我需要为每个线程将状态更改为false(我认为目前每个线程都有一个状态就足够了,但是将来我可能需要分别停止每个线程)

那么,最好的方法是什么?我可以使用一些 state 作为全局变量并使用互斥量。每次我必须锁定,读取,解锁它以读取它的值。我认为这是一个耗时的过程。您对如何实施它有任何其他想法吗?

1 个答案:

答案 0 :(得分:1)

#man pthread_cancel

允许您向线程发送取消请求。

#man pthread_cleanup_push

允许您设置取消例程。