是否有除pthread_create之外的任何方法将工作分配给同一个线程?

时间:2013-09-05 04:34:22

标签: linux multithreading pthreads

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

1 个答案:

答案 0 :(得分:2)

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