因此我们有一项任务是使用Java中的信号量对数组进行排序。这项任务非常简单,我已经在几分钟内解决了这个问题,但最后一部分合并了。
我们的任务是将给定的数组分成两部分,同时对部分进行排序(使用信号量),然后再次合并(使用信号量)。
我的问题是,使用多个Thread合并它的目的是什么,因为在填充最终数组时,每个都必须经常等待彼此,因为只有一个可以一次将元素推送到数组? / p>
或者我错过了什么? 感谢。
答案 0 :(得分:1)
您可以从结果数组的两侧合并两个不同的线程。 每个线程应该填充最终数组的一半。然后线程可以使用信号量作为“屏障”Implementing an N process barrier using semaphores来互相等待。