并发编程futuretask
package com.mrbird.api.demoThread.thread1; /**
* @Description
* @Date: 2019/3/29
*/ import java.util.concurrent.*; /**
* Future
* Futures是一个抽象的概念,它表示一个值,该值可能在某一点变得可用。一个Future要么获得
* 计算完的结果,要么获得计算失败后的异常。
* Java在java.util.concurrent包中附带了Future接口,它使用Executor异步执行。例
* 如下面的代码,每传递一个Runnable对象到ExecutorService.submit()方法就会得到一个回调的Future,
* 你能使用它检测是否执行,这种方法可以是同步等待线处理结果
* 完成。
*/ public class CallableTest4 { public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(10);
//实现一个Callable接口
ThreadDemo threadDemo = new ThreadDemo();
FutureTask<Netty> futureTask = new FutureTask<Netty>(threadDemo);
executorService.submit(futureTask);
executorService.shutdown();
try {
//处理完毕后返回的结果
Netty netty = futureTask.get();
System.out.println("线程执行完成" + netty.name);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
} static class ThreadDemo implements Callable<Netty> {
@Override
public Netty call() throws Exception {
//这里是你的业务逻辑处理
//让当前线程阻塞1秒看下效果
Thread.sleep(5000);
return new Netty("张三");
}
} static class Netty {
private String name; private Netty(String name) {
this.name = name;
}
} }
并发编程futuretask的更多相关文章
- 并发编程—— FutureTask 源码分析
1. 前言 当我们在 Java 中使用异步编程的时候,大部分时候,我们都会使用 Future,并且使用线程池的 submit 方法提交一个 Callable 对象.然后调用 Future 的 get ...
- 并发编程 futuretask
package com.mrbird.api.demoThread.future; import java.util.concurrent.Callable; import java.util.con ...
- Java并发编程:Callable、Future和FutureTask
作者:海子 出处:http://www.cnblogs.com/dolphin0520/ 本博客中未标明转载的文章归作者海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置 ...
- (转)Java并发编程:Callable、Future和FutureTask
Java并发编程:Callable.Future和FutureTask 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口. 这2种方式都有一 ...
- Java并发编程:Callable、Future和FutureTask(转)
Java并发编程:Callable.Future和FutureTask 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口. 这2种方式都有一 ...
- Java并发编程原理与实战三十一:Future&FutureTask 浅析
一.Futrue模式有什么用?------>正所谓技术来源与生活,这里举个栗子.在家里,我们都有煮菜的经验.(如果没有的话,你们还怎样来泡女朋友呢?你懂得).现在女票要你煮四菜一汤,这汤是鸡汤, ...
- Java 并发编程——Callable+Future+FutureTask
Java 并发编程系列文章 Java 并发基础——线程安全性 Java 并发编程——Callable+Future+FutureTask java 并发编程——Thread 源码重新学习 java并发 ...
- 15、Java并发编程:Callable、Future和FutureTask
Java并发编程:Callable.Future和FutureTask 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口. 这2种方式都有一 ...
- 007 Java并发编程:Callable、Future和FutureTask
原文https://www.cnblogs.com/dolphin0520/p/3949310.html Java并发编程:Callable.Future和FutureTask 在前面的文章中我们讲述 ...
随机推荐
- @Controller @RestController
知识点:@RestController注解相当于@ResponseBody + @Controller合在一起的作用. 1) 如果只是使用@RestController注解Controller,则Co ...
- 一、docker的原理
一.docker解决什么问题: 高效的利用资源 应用之间相互隔离 应用之间不能发生资源抢占,每个应用只能使用事先注册申请的资源. 环境封装,利于迁移 二.docker的原理: 1.Namespaces ...
- loadrunner 添加集合点和添加压力机
loadrunner 添加集合点和添加压力机 一.添加集合点: 1.在脚本中右键insert--rendezvous (集合点一定要添加在事务的外面,否则影响事务准确性) 2.创建controller ...
- Jenkins_安装
1.下载war包 wget -c -O ./jenkins.war http://mirrors.jenkins.io/war-stable/latest/jenkins.war 2.启动下载好的wa ...
- day21双下方法,源码相关,异常处理
#!/usr/bin/env python# -*- coding:utf-8 -*- # 1.列举你了解的面向对象中的特殊成员,并为每个写代码示例.'''__init__初始化:class A: d ...
- SHELL:多文件的重命名和移动
rename find mv #实现查找png 和 jpeg文件 #!/bin/bash #file name: rename.sh #use: rename.jpg and .png files ...
- Contest2162 - 2019-3-28 高一noip基础知识点 测试5 题解版
传送门 T1 单调栈 按照b排序 在家每一个物品时,判断一下a和b的关系 如果s[sta[top]].a>=s[i].b,就弹栈 记录所有时候的height,并取最大值 T2 单调栈裸题 单调栈 ...
- CDH5.16.1的maven依赖版本查询地址
1查询官网地址,提供了详细的各个版本的jar依赖版本信息 https://www.cloudera.com/documentation/enterprise/release-notes/topics/ ...
- mysql8.0卸载干净--win10
本文介绍,在Windows10系统下,如何彻底删除卸载MySQL... 1>停止MySQL服务开始->所有应用->Windows管理工具->服务,将MySQL服务停止.2> ...
- django 模型models
1. django 模型models 常用字段 1.models.AutoField 自增列 = int(11) 如果没有的话,默认会生成一个名称为 id 的列 如果要显式的自定义一 ...