gpt4 book ai didi

java - Executor Service 上的异步进程

转载 作者:行者123 更新时间:2023-11-29 09:28:40 25 4
gpt4 key购买 nike

我正在为多线程使用执行器服务。跨越 15 个线程,当前进程确实完成了 15 个线程,然后再继续跨越 15 个线程的下一个执行程序服务。我正在寻找代码帮助,如果步骤 1 执行程序服务中的任何当前线程完成处理,我需要转到下一个执行程序服务,它可以开始使用线程而不是等待步骤 1 中的 15 个线程完成才能完成。

我想利用已完成的线程并继续执行步骤 2,即使其他线程正在步骤 1 中执行,并且一旦步骤 1 中的每个线程完成,步骤 2 就可以抓取并继续处理。请提出建议

// Step 1 
ExecutorService executor1 = Executors.newFixedThreadPool(15);
for (int i=0;i<=15;i++) {
Runnable worker = new Runnable("Step 1 Insert");
executor1.execute(worker); }
executor1.shutdown();
// Step 2
ExecutorService executor2 = Executors.newFixedThreadPool(15);
for (int i=0;i<=15;i++) {
Runnable worker = new Runnable("Step 2 Insert");
executor2.execute(worker); }
executor2.shutdown();

最佳答案

为什么不能在同一个 Runnable 中执行所有步骤?例如

ExecutorService executor = Executors.newFixedThreadPool(15);
for (int i=0;i<=15;i++) {
Runnable worker = new Runnable() {
public void run() {
doStep1();
doStep2();
doStep3();
...
}
};
executor.execute(worker);
}
executor.shutdown();

关于java - Executor Service 上的异步进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34995349/

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