gpt4 book ai didi

java - 带有执行器框架的可调用接口(interface)。为什么即使从调用方法返回后程序也没有退出

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

我正在尝试了解执行器框架的可调用接口(interface)。这是可行的,但我有点困惑为什么即使从调用方法返回后程序也不会退出。

代码:

CallableExample.java

package callable1;

import java.util.concurrent.Callable;

public class CallableExample implements Callable<String> {

@Override
public String call() throws Exception {
// TODO Auto-generated method stub
String s = Thread.currentThread().getName();
for(int i = 0 ; i < 10 ; i++)
{
s += ""+i;
System.out.println(s);
Thread.sleep(1000);
}

return s;
}
}

Tester.java

package callable1;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class Tester {

public static void main(String[] args) throws Exception
{
ExecutorService pool = Executors.newFixedThreadPool(5);
Future<String> ftask = pool.submit(new CallableExample());

System.out.println("getting result");
System.out.println("----" + ftask.get());
System.out.println("main over");
}
}

最佳答案

java.util.concurrent.*的线程池就是这样设计的,所以你必须调用shutdown()shutdownNow() 在你的执行者上。否则程序不会停止。您可以在 javadocs 中找到这些方法之间的差异。

关于java - 带有执行器框架的可调用接口(interface)。为什么即使从调用方法返回后程序也没有退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50254411/

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