Callable 接口控制线程
public class Test01 {public static void main(String[] args) throws ExecutionException, InterruptedException {//new Thread().start();MyTherad myTherad = new MyTherad();//适配类FutureTask futureTask = new FutureTask(myTherad);new Thread(futureTask,"A").start();new Thread(futureTask,"B").start(); //结果会被缓冲,提高效率Integer o = (Integer) futureTask.get(); //获取Callable的返回结果 但可能会产生阻塞,或者使用异步通信System.out.println(o);}
}
class MyTherad implements Callable<Integer>{@Overridepublic Integer call() throws Exception {System.out.println("call();");return 1024;}
}
Callable 接口控制线程相关推荐
- Java用Callable接口创建线程
一.概述 使用Callable接口创建线程能够返回数据.与Runnable接口创建线程的方式有点类似,也是需要通过Thread类来创建线程.由于Thread类的构造函数中没有Callable接口, ...
- 【Java】线程创建方式:Callable接口 / 使用线程池
面试题:创建多线程有有哪几种方式? 回答:4种. 实现Runnable接口(重写Run方法) 继承Thread类 实现Callable接口(重写Call方法,与Run不同的是,Call方法有返回值) ...
- Java多线程(6)--Callable接口创建线程
与使用Runnable相比, Callable功能更强大些 ①相比run()方法,可以有返回值 ②方法可以抛出异常 ③支持泛型的返回值 ④需要借助FutureTask类,可以获取返回结果 Future ...
- 【多线程】采用Callable接口创建线程
前言 java5开始,提供了Callable接口,是Runable接口的增强版.同样用Call()方法作为线程的执行体,增强了之前的run()方法.因为call方法可以有返回值,也可以声明抛出异常. ...
- Callable接口-创建线程的第三种方法
Callable和Runable相比 //Runnable和Callable区别 //1.Callable带返回值 //2.run()不会抛异常,call()会抛异常 //3.实现的接口不同 pack ...
- java callable接口_使用Callable接口实现线程
执行Callable方式,需要FutureTask实现类的支持,用于接收运算结果 package com.gwolf; import java.util.concurrent.Callable; im ...
- 【JUC并发编程07】Callable接口
文章目录 7 Callable接口 7.1 Callable接口创建线程 7.2 FutureTask 7 Callable接口 创建线程的多种方式: 继承Thread类 实现Runnable接口 C ...
- Java多线程 - Runnable接口和Callable接口的区别
文章目录 1. Runnable接口实例 2. Callable接口原理 3. Callnable接口实例 4. FutureTask是什么? 5. 线程池中 submit() 和 execute() ...
- 简单理解Callable接口
Callable接口: Callable,新启线程的一种方式,返回结果并且可能抛出异常的任务,在前面的新启线程的文章中用过,但是没有具体讲解 优点: 可以获取线程的执行结果,也称为返回值 通过与Fut ...
- Callable 接口实现java 的多线程
java 中创建多线程最常见的是继承Thread 的子类重写run() 方法,还有就是实现Runnable 接口 我们最好使用实现了Runnable 接口的方法原因有两点: ①因为java 的单继承的 ...
最新文章
- bootstrap使用总结
- 每天首次登陆记录设备信息
- 用户画像,如何驱动产品链路优化?
- 科技、体育、创业,三者碰撞是真的野!
- java死循环_java小白关于while死循环时处理办法的一发求助帖
- AQS理解之二,自己设计一个锁
- express+mongodb+vue实现增删改查-全栈之路
- Gym - 101986F Pizza Delivery(最短路+DAG必经边)
- 基本的排序算法php,php四种基础排序算法
- MSSOAP与WebService
- fatal exception java_java.lang.IllegalStateExceptio
- 裘宗燕:C/C++ 语言中的表达式求值
- high performance web sites 阅读小记
- 【ACL2020】使用问题图生成解决multi-hop复杂KBQA
- vant-ui 有赞ui官网打不开?
- css实现白光划过效果
- Notes真的无处不在
- Wechat + unbuntu
- 如何使用VSCode开发Qt项目?
- 如何扩展Linux系统分区大小
热门文章
- PHP non-thread-safe和thread-safe这两个版本的区别
- dubbo-Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError
- python 教程 第十章、 输入/输出
- 北京地铁5号线地图(线路图、站名、实拍pp)
- 文件的读写学习笔记和我的第一个网页
- silverlight中datagrid数据到处excel
- windows进程中的内存结构
- 处理顶点——使用顶点缓冲和索引缓冲将顶点和索引保存在显存中
- Enterprise Architect 中文快速入门
- 拓端tecdat|R语言广义线性模型索赔频率预测:过度分散、风险暴露数和树状图可视化