如何通过Java Callable接口编写线程执行代码实例?

2026-05-21 09:101阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计300个文字,预计阅读时间需要2分钟。

如何通过Java Callable接口编写线程执行代码实例?

实现Callable接口(Java 8新特性)+ 获取线程的返回值 + *前两种方式没有返回值,因为run方法返回void + 创建一个Future任务对象+ Future task=new Future(); 重写call()方法 + 可以使用匿名内部类““

实现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"); } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

如何通过Java Callable接口编写线程执行代码实例?

本文共计300个文字,预计阅读时间需要2分钟。

如何通过Java Callable接口编写线程执行代码实例?

实现Callable接口(Java 8新特性)+ 获取线程的返回值 + *前两种方式没有返回值,因为run方法返回void + 创建一个Future任务对象+ Future task=new Future(); 重写call()方法 + 可以使用匿名内部类““

实现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"); } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

如何通过Java Callable接口编写线程执行代码实例?