基于Java Callable接口实现线程代码实例
时间:2021-04-24 09:28:06|栏目:JAVA代码|点击: 次
实现Callable接口(jdk8新特性)
可以获得线程的返回值
*前两种方式没有返回值,因为run方法返回void
创建一个未来任务类对象 Futrue task = new Future(Callable<>);重写call()方法 可以使用匿名内部类方式
task.get()方法获取线程返回结果
get方法执行会导致当前方法阻塞 效率较低
代码如下
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
public class Test_13 {
public static void main(String[] args) {
System.out.println(Thread.currentThread().getName() + "begin");
FutureTask task = new FutureTask(new Callable() {
@Override
public Object call() throws Exception {
System.out.println(Thread.currentThread().getName() + "start");
Thread.sleep(1000 * 5);
int a = 100;
int b = 200;
System.out.println(Thread.currentThread().getName() + "over");
return a + b;
}
});
Thread thread = new Thread(task);
thread.start();
try {
System.out.println(task.get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "end");
}
}
上一篇:IDEA下从零开始搭建SpringBoot工程的方法步骤
栏 目:JAVA代码
本文标题:基于Java Callable接口实现线程代码实例
本文地址:http://www.codeinn.net/misctech/107831.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




