0

在 Pthread 编程中,我们可以通过调用 pthread_create 函数将任务分配给工作线程,并传递函数参数,但我想通过使用 pthread_create 将作业分配给先前创建的线程我该怎么办?

4

1 回答 1

2

您可以将新任务“传达”到现有​​线程。让现有线程等待信号(使用 pthread_cond_wait())。当您有一个新任务时,您可以将任务存储在一个公共存储中,然后简单地向工作线程发出信号(使用 pthtread_cond_signal())。当您有一个等待传入任务的工作线程池时,这种方法效果很好。当您发出信号时,只有一个线程会唤醒(pthread_cond_wait 与互斥锁绑定,因此只有其中一个重新获取互斥锁),其余线程将继续等待。

于 2013-09-05T05:06:35.123 回答