我想通过实现并行工作的线程来加快排序功能。我对pthread的基本知识是创建,联接和使用互斥锁来防止死锁。
所以我的问题是: 完成任务后如何为线程分配任务?例如,如果我要给线程1列出一个列表的一半,给任务2排序的另一个,则任务1完成后,它应该跳到任务2并提供帮助。
如果有帮助,我正在快速排序进行测试。
我试图查看是否有任务分配功能,但我偶然发现的功能使用不同的代码。
答案 0 :(得分:0)
没有什么特别复杂的。
首先,您需要一个等待队列。就是说,为了让线程在队列为空时能够等待而维护的事物列表。
第二,您需要编写代码以从等待的队列中弹出作业,等待队列中没有作业。然后它完成了这项工作。
这是我写的一些example code。它是用C ++编写的,但是从看代码就可以清楚地看到一般的想法。