package com.zkingcai.pay;
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;
/**
* ***************************************************************************
*创建时间 : 2018年4月28日
*实现功能 : 实现Callable,创建有返回值的任务
*作者 : sxl
*版本 : v0.0.1
-----------------------------------------------------------------------------
*修改记录:
*日 期 版本 修改人 修改内容
*2018年4月28日 v0.0.1 sxl 创建
****************************************************************************
*/
class MyCallable implements Callable<String>{
@Override
public String call() throws Exception {
Date time1 = new Date();
Thread.sleep(1000);
Date time2 = new Date();
return Thread.currentThread().getName() + "运行了" + (time2.getTime() - time1.getTime()) + "毫秒";
}
}
/**
* ***************************************************************************
*创建时间 : 2018年4月28日
*实现功能 : 获取线程池,执行线程,返回结果
*作者 : sxl
*版本 : v0.0.1
-----------------------------------------------------------------------------
*修改记录:
*日 期 版本 修改人 修改内容
*2018年4月28日 v0.0.1 sxl 创建
****************************************************************************
*/
public class ThreadDemo {
public static void main(String[] args) throws InterruptedException, ExecutionException {
// 获取线程池
ExecutorService newFixedThreadPool = Executors.newFixedThreadPool(1);
// 创建任务
MyCallable myCallable = new MyCallable();
// 执行任务
Future<String> future = newFixedThreadPool.submit(myCallable);
// 获取返回值
String result = future.get();
System.out.println(result);
}
}
返回的结果