1

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

while (state) {....}

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

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

4

1 回答 1

1

# 人 pthread_cancel

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

# 人 pthread_cleanup_push

允许您设置取消例程。

于 2012-08-03T06:34:45.497 回答