简单实现有返回值的多线程

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);
	}
}

返回的结果


猜你喜欢

转载自blog.csdn.net/sxlzs_/article/details/80118133