测试 多线程 实现 callable 带返回值
package threadTest; import java.util.ArrayList;
import java.util.Date;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future; /**
*
* 类 描 述: 测试 多线程 实现 callable 带返回值
* 作 者: 赵 鹏
*/
public class FutureTest { @SuppressWarnings("rawtypes")
public static void main(String[] args) throws InterruptedException, ExecutionException { Date date1 = new Date(); //线程池大小
int taskSize = 5; //1创建一个线程池
ExecutorService pool = Executors.newFixedThreadPool(taskSize); //2创建多个砝码绘制的List ArrayList<Future> list = new ArrayList<Future>(); for (int i = 0; i < taskSize; i++) { Callable mCallable = new MCallable(i + "");
//执行任务并获取任务对象
@SuppressWarnings("unchecked")
Future future = pool.submit(mCallable); //System.out.println("【>>>>>】" + future.get().toString());
//将任务对象存入list中
list.add(future);
} //关闭线程组
pool.shutdown(); for (Future future : list) { // 从Future对象上获取任务的返回值,并输出到控制台
System.out.println(">>>" + future.get().toString());
} Date date2 = new Date(); System.out.println("[程序执行完成的花费时间为]" + (date2.getTime()-date1.getTime()) + "毫秒"); } } class MCallable implements Callable<Object> { private String taskNum; MCallable(String taskNum) {
super();
this.taskNum = taskNum;
} @Override
public Object call() throws Exception {
System.out.println(">>> " + taskNum + " 任务开始运行"); Date dateTemp1 = new Date(); Thread.sleep(1000); Date dateTemp2 = new Date(); long time = dateTemp2.getTime() - dateTemp1.getTime(); System.out.println(">>>" +taskNum+ "任务【结束】运行"); return "任务" +taskNum+ "执行完毕 , 运行时间为【" + time +"】毫秒";
} }
测试 多线程 实现 callable 带返回值的更多相关文章
- Java多线程带返回值的Callable接口
Java多线程带返回值的Callable接口 在面试的时候,有时候是不是会遇到面试会问你,Java中实现多线程的方式有几种?你知道吗?你知道Java中有可以返回值的线程吗?在具体的用法你知道吗?如果两 ...
- 慕课网-Java入门第一季-7-3 Java 中无参带返回值方法的使用
来源:http://www.imooc.com/code/1579 如果方法不包含参数,但有返回值,我们称为无参带返回值的方法. 例如:下面的代码,定义了一个方法名为 calSum ,无参数,但返回值 ...
- Java 中带参带返回值方法的使用
如果方法既包含参数,又带有返回值,我们称为带参带返回值的方法. 例如:下面的代码,定义了一个 show 方法,带有一个参数 name ,方法执行后返回一个 String 类型的结果 调用带参带返回值的 ...
- Java 中无参带返回值方法的使用
如果方法不包含参数,但有返回值,我们称为无参带返回值的方法. 例如:下面的代码,定义了一个方法名为 calSum ,无参数,但返回值为 int 类型的方法,执行的操作为计算两数之和,并返回结果 在 c ...
- EF5中 执行 sql语句使用Database.ExecuteSqlCommand 返回影响的行数 ; EF5执行sql查询语句 Database.SqlQuery 带返回值
一: 执行sql语句,返回受影响的行数 在mysql里面,如果没有影响,那么返回行数为 -1 ,sqlserver 里面 还没有测试过 using (var ctx = new MyDbConte ...
- Mysql带返回值与不带返回值的2种存储过程
过程1:带返回值: 1 drop procedure if exists proc_addNum; 2 create procedure proc_addNum (in x int,in y int, ...
- c++中带返回值函数没写return能通过编译但运行时会出现奇怪问题
c++中带返回值函数没写return能通过编译但运行时会出现奇怪问题 例如: string myFunc(){ theLogics(); } 发现调用: myFunc(); 崩溃. 但调用: cout ...
- 13 继续C#中的方法,带返回值的方法介绍
在这一个练习中,我们要使用带返回值的方法.如果一个方法带返回值,那么它的形式是这样的. 定义一个带返回值的C#方法 static 返回类型 方法名字 (参数类型 参数1的名字,参数类型 参数2的名字) ...
- 064 01 Android 零基础入门 01 Java基础语法 08 Java方法 02 无参带返回值方法
064 01 Android 零基础入门 01 Java基础语法 08 Java方法 02 无参带返回值方法 本文知识点:无参带返回值方法 说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进 ...
随机推荐
- Excel中IF函数的嵌套用法(多条件)
Excel中IF函数的嵌套用法(多条件) Excel中IF函数的嵌套用法(多条件) 函数格式:if(logical_test,value_if_true,value_if_false).其中: ...
- Plotagraph软件五分钟光速速成傻瓜教程
http://bbs.dji.com/thread-144203-1-1.html 让照片变成动态的
- java-深克隆和浅克隆
文章参考 https://www.cnblogs.com/acode/p/6306887.html 一.前提 1.使用clone()方法的类,必须实现Cloneable接口, 否则调用clone()方 ...
- javax.servlet.http.HttpServlet" was not found on the Java Build Path
问题解决(以maven为例): 只需在pom.xml导入对应的两个依赖即可解决该问题: <dependency> <groupId>javax.servlet.jsp</ ...
- 吴恩达机器学习CS229课程笔记学习
监督学习(supervised learning) 假设我们有一个数据集(dataset),给出居住面积和房价的关系如下: 我们以居住面积为横坐标,房价为纵坐标,组成数据点,如(2104, 400), ...
- MySQL(九)插入、更新和删除
常用的SQL语句,除了select用于查询,还有insert.update.delete等. 一.insert insert:用来插入(或添加)行到数据库中,常见方式有以下几种: ①插入完整的行: ② ...
- 玩转 ”hello word“,Python程序员大多数都没有实现过
很多人学习Python很长时间,对于'hello word' 的认知,很多已经从事Python多年的程序员的认知也就只有: print(hello wrod) 但是有没有让hello word 变得不 ...
- php的foreach中使用取地址符,注意释放
先来举个例子: <?php $array = array(1, 2, 3); foreach ($array as &$value) {} // unset($value); forea ...
- 【LeetCode105】Construct Binary Tree from Preorder and Inorder Traversal★★
1.题目 2.思路 3.java代码 //测试 public class BuildTreeUsingInorderAndPreorder { public static void main(Stri ...
- 一个简单的javascript节流器实现
节流器 javascript的节流器主要用于延缓某些动作的执行,比如ajax请求,如果input框注册了input事件,那么当用户输入时就会持续的触发这个事件,如果回调函数中持续的通过ajax调用后台 ...