【发布时间】:2012-09-29 02:15:57
【问题描述】:
所以我们有一个任务是在 Java 中使用信号量对数组进行排序。这个任务很简单,我在近几分钟内就解决了,但最后一次合并。
我们的任务是将给定的数组分成两部分,同时对部分进行排序(使用信号量),然后再次合并(使用信号量)。
我的问题是,使用多个线程合并它的目的是什么,因为在填充最终数组时,每个线程都必须不断地相互等待,因为一次只能将元素推送到数组中?
或者我错过了什么? 谢谢。
【问题讨论】:
-
也许你应该在排序线程完成工作后使用信号量来唤醒一个独特的合并线程。
-
两个(或多个)线程可以同时工作,你可能需要等待最慢的一个,但它比顺序做所有的事情要快。
标签: java multithreading semaphore