JavaSE--学习实战完全笔记--增强版的线程创建方式--实现Callable接口
来源:互联网 发布:疯狂的美工 编辑:程序博客网 时间:2024/05/21 10:31
增强版的线程创建方式--实现Callable接口
JDK1.5提供的Callable的call()方法,可以有泛型、抛出异常、有返回值。实现Runnable接口,Thread类可以把run方法包装成线程执行体,但不能把其他方法包装成线程执行体。
至此我们知道,创建线程有三种方法,即直接继承Thread类和实现Callable接口或Runnable接口。那么当我们需要创建线程时应该如何选择呢?
因此,一般使用实现Callable接口或Runnable接口的方式创建多线程。
下面提供了实现Callable接口的线程了的完整代码(JDK1.7开发环境下亲测通过)
//通过实现Callable接口来实现线程类import java.util.concurrent.Callable;import java.util.concurrent.FutureTask;import java.util.concurrent.ExecutionException;public class CallableTest implements Callable<Integer>{ //实现call()方法作为线程执行体 public Integer call() { int i=0; for(;i<20;i++) { System.out.println(Thread.currentThread().getName()+"===="+i); } return i; } //主方法 public static void main(String[] args) { //创建Callable对象 CallableTest cal=new CallableTest(); //使用FutureTask来包装Callable对象 FutureTask<Integer> task=new FutureTask<Integer>(cal); int i=0; for(;i<20;i++) { System.out.println(Thread.currentThread().getName()+"===="+i); if(i==10) { new Thread(task,"Callable").start(); } } try{ System.out.println("子线程的返回值===="+task.get()); }catch(InterruptedException iex){ iex.printStackTrace(); }catch(ExecutionException eex){ eex.printStackTrace(); } }}
0 0
- JavaSE--学习实战完全笔记--增强版的线程创建方式--实现Callable接口
- 创建执行线程的方式三:实现 Callable 接口
- 创建线程的第三种方式:实现Callable接口
- ForkJoinTask以及实现callable接口创建线程的学习
- 创建java线程方式之三实现Callable接口
- 多线程之创建线程的方式之一:实现Callable接口(三)
- 多线程之创建线程的方式之一:实现Callable接口(三)
- 21.线程的实现方式三 ---实现Callable接口
- JavaSE学习实战完全笔记--集合的实现细节--Set和Map
- JAVA学习笔记(三十八)- 创建实现Runnable接口的线程
- 多线程创建方式三之实现Callable接口
- 黑马程序员_笔记_多线程(创建线程的第二种方式:实现Runable接口)
- 创建线程的第三种方式Callable和Future CompletionService
- 三种Java创建线程的方式(Callable,FutureTask)
- Java线程之Callable接口实现线程
- Callable接口实现线程执行结果的返回
- 使用Callable接口创建线程(Java5新增)
- java创建线程的第二种方式:实现Runnable接口
- 长竖线及长括号
- jquery过滤特殊字符',防sql注入
- JPA & Hibernate 注解
- Ubuntu安装Django提示 ImportError: No module named setuptools 解决方案
- itext高版本的pdf的页眉和页脚信息显示方法
- JavaSE--学习实战完全笔记--增强版的线程创建方式--实现Callable接口
- 判断邮箱合法性的方法
- Bitmap优化
- 求解单词数
- android studio 中mipmap引用.9图片出错
- 黑马程序员 集合体系
- UITextView限制文本长度
- DLNA
- mysql 几种日志