Java中的优先级信号量

Joh*_*ohn 2 java multithreading

我有一个多线程程序,每个线程计算两个数字的GCD并打印出结果.我现在遇到的问题是我必须按升序打印结果.我不知道该怎么做.这是学校作业.我们不允许使用任何额外的线程来对结果和输出进行排序,也不能在主线程中进行打印.

ass*_*ias 5

我知道您需要按升序打印GCD.

如果是这种情况,您可以根据需要生成尽可能多的线程,并将结果放在共享集合中,然后在所有其他生成的线程完成后从其中一个线程打印集合.

例如,让第一个线程启动其他线程,然后加入并打印.或者您可以使用CountDownLatch来了解集合何时已满.

确保集合是线程安全的或受锁保护.

  • @BlackVegetable编辑 - 在这种情况下,他可以使用其中一个线程作为打印机.正如您所提到的,他需要首先计算所有结果,因此必须在所有线程完成计算后进行打印. (2认同)