import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* 2022/6/30 4:26 下午
* 获取多线程的方式
*/
class TestService implements Callable<Integer> {
@Override
public Integer call() throws Exception {
System.out.println("********come in callable");
return 1024;
}
}
class CallableDemo {
public static void main(String[] args) throws ExecutionException, InterruptedException {
FutureTask<Integer> futureTask = new FutureTask<>(new TestService());
new Thread(futureTask, "AA").start();
//不会执行call方法,会直接复用,如果要调用,需要重新new FutureTask
// new Thread(futureTask, "BB").start();
int aa = 100;
while (!futureTask.isDone()){
//还没执行完、等待
}
//建议放后面获取,以免线程堵塞
int bb = futureTask.get();
System.out.println("*****result" + (aa+bb));
}
}
获取多线程的方式-Callable
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 实现线程的前两种方式 Callable 与 Runnable Future FutureTask 示例 Java ...
- 实现Callable创建线程 Callable在java.util.concurrent包下面,与其他两种方式不同...
- 转载请注明出处:https://www.jianshu.com/p/93d0769742a6 1.多线程的引入(了...