【发布时间】:2011-10-24 11:58:23
【问题描述】:
我想使用 pthreads 实现以下场景: 线程池中有两种线程。第一种执行(比如说)fun1,第二种执行 fun2。主线程启动这两个线程(为简单起见,假设池中只有两个工作线程,上述两种不同类型中的每一种)。然后主线程等待其中一个线程完成。第一个完成的线程通知主线程,然后主线程应该通知另一个工作线程退出执行其工作。并且循环继续。
现在,如果我想阻止线程执行其工作,这可能类似于 memmove/lock 获取,那么我认为最好杀死/取消该线程并重新创建它。大家觉得呢?
此外,如果我取消线程 (pthread_cancel),那么似乎我将不得不调用 pthread_join 以确保它实际上已被取消,然后重新创建它。这是真的吗?
谢谢, 尼勒什。
【问题讨论】:
标签: c pthreads threadpool