《Java并发》:第三节 创建有返回值的线程
来源:互联网 发布:淘宝修改折扣价权重 编辑:程序博客网 时间:2024/05/25 21:33
1、使用Executor
Java SE5的java.util.concurrent保重的执行器(Executor)将为你管理Thread对象,从而简化了并发编程。Executor允许你管理异步任务的执行,而无需显示管理线程的生命周期。Executor在Java SE5/6/7中是启动任务的优选方法。
class LifeTest implements Runnable {@Overridepublic void run() {while(true){System.out.println(Thread.currentThread().getName());try {TimeUnit.SECONDS.sleep(1);} catch (InterruptedException e) {e.printStackTrace();}}}}public class MultiThreadTest {public static void main(String[] args) throws InterruptedException {ExecutorService exec = Executors.newCachedThreadPool();exec.execute(new LifeTest());exec.shutdown();}}对shutdown方法的调用可以防止新任务被提交给这个Executor。调用shutdown()之后,在shutdown()被调用之前提交的所有任务将继续执行。
2、创建有返回值的线程
Runnable是执行工作的独立任务,但是它不返回任何值。如果你希望任务在完成时可以返回一个值,那么可以实现Callable接口。
class ReturnTest implements Callable<String>{@Overridepublic String call() throws Exception {return "the_returned_value";}}public class ReturnValueThreadTest {public static void main(String[] args) throws InterruptedException, ExecutionException{ExecutorService exec = Executors.newCachedThreadPool();Future<String> retValue = exec.submit(new ReturnTest());System.out.println(retValue.get());}}对Future<T>.get()的调用将会阻塞,直到结果准备就绪。你还可以调用get(long timeout, TimeUnit unit)来设定超时时间。
0 0
- 《Java并发》:第三节 创建有返回值的线程
- java 如何创建一个有返回值的线程
- Java线程-有返回值的线程
- Java线程:有返回值的线程
- java--线程--有返回值的线程
- Java 并发:获取线程的返回值
- java并发编程 第三节 对象的共享
- java高并发之有返回值的多线程并发
- java Callable有返回值的线程
- Java多线程 -- 有返回值的线程
- Java线程:新特征-有返回值的线程
- Java线程:新特征-有返回值的线程
- Java线程:新特征-有返回值的线程
- Java线程:新特征-有返回值的线程
- Java线程:新特征-有返回值的线程
- Java线程:新特征-有返回值的线程
- Java线程:新特征-有返回值的线程
- Java线程:新特征-有返回值的线程
- 代码阅读工具SourceInsight
- asp.net编程利用Repeater控件做简单的留言板
- linux串口属性O_CTTY O_NDELAY
- 从零开始-边学边做-塔防游戏-七彩三国(六)--SDL--全红屏幕
- 查看自己端口被谁占用的几个命令(以9000为例)
- 《Java并发》:第三节 创建有返回值的线程
- 《交互设计之路》读书笔记
- 修改gp集群主机名称
- 乌班图系统Ubuntu 12.04安装教程(图文详解)
- Leetcode: Populating Next Right Pointers in Each Node II
- linux-od
- SCANF返回值问题
- vxworks的堆和栈
- 枸杞子