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

最佳答案

我了解您需要按升序打印GCD。

在这种情况下,您可以根据需要简单地生成任意数量的线程,并将它们放入共享的集合中,然后在所有其他生成的线程完成后,从这些线程之一打印该集合。

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

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

关于java - Java中的优先信号量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14296634/

10-14 18:04