c - 初始化线程池

c - 初始化线程池,第1张

作为硬件分配的一部分,我即将使用class="superseo">pthreads在ANSI C中实现一个线程池。

我很难理解如何初始化我的线程池。我认为这个想法是使用线程初始化池,直到他们找到工作为止,但是我不知道如何实现它。

最佳答案:

1 个答案:

答案 0 :(得分:1)

创建一个作业队列(这可能像链表一样简单),受互斥锁保护。将此配对与作业添加到队列时广播信号的条件变量相对应。然后,线程可以使用以下代码等待作业:

pthread_mutex_lock(&queue_lock);
while (queue_is_empty)
    pthread_cond_wait(&queue_cond, &queue_lock);
job = pop_from_queue();
pthread_mutex_unlock(&queue_lock);
本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复