线程池submit()使用案例

submit()使用案例
public class Test {
private static final String SUCCESS = “success”;

public static void main(String[] args) {

ExecutorService executorService = Executors.newFixedThreadPool(3);

System.out.println(“——————任务开始执行———————“);

Future<String> future = executorService.submit(new Callable<String>() {
@Override
public String call() throws Exception {
Thread.sleep(5000);
System.out.println(“submit方法执行任务完成” + ” thread name: ” + Thread.currentThread().getName());
return SUCCESS;
}
});

try {
String s = future.get();
if (SUCCESS.equals(s)) {
String name = Thread.currentThread().getName();
System.out.println(“经过返回值比较,submit方法执行任务成功 thread name: ” + name);
}
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}

System.out.println(“——————-main thread end———————“);
}
}

打印结果:

——————任务开始执行———————
call()调用开始: 1496899867882
submit方法执行任务完成: 1496899872897 thread name: pool-1-thread-1
经过返回值比较,submit方法执行任务成功 thread name: main
——————-main thread end———————
1
2
3
4
5
6
主线程会一直阻塞,等待线程池中的任务执行完后,在执行后面的语句。
 

版权声明:本文为xiaohouye原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xiaohouye/p/14647860.html