gpt4 book ai didi

java - 生产者消费者主线程退出,而其他线程正在运行

转载 作者:行者123 更新时间:2023-12-01 22:34:09 26 4
gpt4 key购买 nike

我的代码片段:

public class ProducerConsumerTest {

public static void main(String[] args)
{
ArrayBlockingQueue<String> sharedQueue = new ArrayBlockingQueue<String>(20, true);

ExecutorService consumerService = Executors.newFixedThreadPool(5);
ExecutorService producerService = Executors.newSingleThreadExecutor();

Future future=producerService.submit(new Producer(sharedQueue));

consumerService.execute(new Consumer(sharedQueue));
consumerService.execute(new Consumer(sharedQueue));
consumerService.execute(new Consumer(sharedQueue));
consumerService.execute(new Consumer(sharedQueue));
consumerService.execute(new Consumer(sharedQueue));
}
}

如何让主线程等待其他线程?

我面临的问题是我不知道 ExecutorService 创建的线程的名称,这就是为什么我不能使用 join() 。例如:t1.join()main() .

最佳答案

为什么不尝试设置障碍呢?

https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CyclicBarrier.html

PS。我认为它们可以在 JAVA7 及更高版本上运行

关于java - 生产者消费者主线程退出,而其他线程正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27122300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com