package com.example.thread;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
/**
* 本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。
* Created by weng.junjie on 2017/2/16.
*/
public class FutureTest {
public static void main(String[] args) throws InterruptedException {
List<Integer> list=new ArrayList<>();
for (int i=0;i<10;i++){
list.add(i);
}
ExecutorService executor = Executors.newSingleThreadExecutor();
Future future=executor.submit(()->{
while(list.size()>0){
System.out.println(list.remove(0));
}
});
//模拟监控多线程是否完成任务?
System.out.println(future.isDone());
Thread.sleep(1000);
System.out.println(future.isDone());
}
}
分享到:
相关推荐
Java使用Callable和Future创建线程操作示例主要介绍了Java使用Callable和Future创建线程操作,结合实例形式分析了java使用Callable接口和Future类创建线程的相关操作技巧与注意事项。 首先,Java 5开始,Java提供了...
NULL 博文链接:https://waitingkkk-163-com.iteye.com/blog/2232286
Java中的`Future`接口是Java并发编程中一个重要的概念,它是`java.util.concurrent`包下的一个接口,主要用于处理异步计算的结果。`Future`接口提供了一些方法来检查任务是否完成,获取或取消任务的结果,以及在必要...
Java中的`Future`接口是Java并发编程的重要组成部分,它提供了对异步计算结果的访问和控制。`Future`接口在`java.util.concurrent`包中,主要用于处理由`ExecutorService`执行的任务。`Future`模式允许我们提交一个...
Java中的`Future`和`FutureTask`是并发编程中重要的工具,它们允许程序异步执行任务并获取结果。`Future`接口提供了对异步计算结果的访问和控制,而`FutureTask`是`Future`的一个具体实现,它还同时实现了`Runnable`...
在Java中,Future和FutureTask都是用于获取线程执行的返回结果,但是它们之间存在一些差异和关联。本文将详细介绍Future和FutureTask的关系、使用和分析。 一、Future介绍 Future位于java.util.concurrent包下,是...
Java的Future编程模式是Java并发处理中的核心概念,主要用于处理异步计算的结果。在Java的`java.util.concurrent`包中,`Future`接口扮演着重要角色,它提供了一种方式来管理和检索由其他线程执行的异步任务的结果。...
Java程序执行超时——Future接口介绍
"了解JAVA Future类" Java Future类是一种并发编程中的一种设计模式,Future它代表一个异步计算的结果。Future表示一个可能还没有完成的异步任务的结果,针对这个结果可以添加Callback以便在任务执行成功或失败后...
例如,使用`Future`对象可以获取每个任务的执行结果。 除了`ThreadPoolExecutor`,Java还提供了`Executors`工具类,它提供了一些预设的线程池配置,如`newFixedThreadPool`(固定大小线程池)、`...
`submit`方法不仅将任务提交到线程池执行,还会返回一个`Future`对象,我们可以使用这些`Future`对象来获取异步计算的结果。 `Future`接口提供了获取任务结果的方法`get()`,这个方法会阻塞直到任务完成并返回结果...
在 Java 中,Future 模式可以使用 ExecutorService 和 Callable 实现。下面是一个简单的示例代码: ```java ExecutorService executor = Executors.newSingleThreadExecutor(); Future<String> future = executor....
Java中的Runnable、Callable、Future和FutureTask是Java多线程编程中的核心概念,它们各自扮演着不同的角色,共同协作以实现并发任务的管理和执行。 1. **Runnable**: Runnable是最基本的多线程接口,它只有一个`...
这篇教程将深入探讨如何在Java中使用Callable。 Callable接口位于`java.util.concurrent`包下,它的主要方法是`call()`,这个方法相当于Runnable的`run()`,但`call()`可以有返回值和抛出异常。当我们需要在线程中...
3. **Future和Callable**:`Future`代表异步计算的结果,`Callable`用于创建能返回结果的线程任务,两者结合使用可获取线程执行结果。 四、并发工具类 1. **CountDownLatch**:用于计数,当计数器归零时所有等待的...
### 使用流程 1. **服务端实现**:首先,开发者需要定义服务接口,并实现该接口,然后通过brpc的注解标记服务及方法。 2. **服务注册**:启动服务时,服务端会自动注册到服务中心,使其他节点能够找到并调用。 3....
Callable 和 Future 是 Java 多线程编程中的两个关键接口,它们在 Java 5 及以上版本引入,以增强并发处理的能力。Callable 接口类似 Runnable,但提供了更丰富的功能,而 Future 对象则用于管理和控制异步计算的...
3. **使用CompletableFuture**:自Java 8引入的CompletableFuture是Future的一个强大扩展,它提供了丰富的链式调用方法,如thenApply(), thenAccept()和thenCompose(),可以轻松地构建复杂的异步流程。 在实际开发...
从Java 1.5开始,引入了Callable和Future接口,为并行编程提供了一种更为高效和便捷的解决方案。 Callable接口是Java并发库中的一个关键接口,位于`java.util.concurrent`包下。Callable接口与Runnable接口类似,但...