`
denghua10
  • 浏览: 73452 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

返回结果线程—等待单个线程

阅读更多
Callable接口与future类相结合可以实现future模式,Future模式在请求发生时,会产生一个Future对象给请求方,Future对象作用类似于代理,所代理的真实任务在另一个线程中继续进行,真实任务完成之后把结果放在future对象中。
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;

public class TestFuture {
public static void main(String[] args) throws InterruptedException, ExecutionException{
final ExecutorService exec=Executors.newFixedThreadPool(3);
Callable<String> call=new Callable<String>(){
public String call(){
try {
Thread.sleep(1000*2);

} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return "Thread is finished";

}
};
Future<String> task=exec.submit(call);
System.out.println("waite son Thread finished");
String obj=task.get();
System.out.println("return finished:"+obj);
exec.shutdown();
}

}
分享到:
评论

相关推荐

    C++ 等待线程结束

    在某些情况下,你可能需要等待一组线程而不是单个线程。这时,可以使用`std::future`和`std::async`来异步执行任务,并使用`std::future::get()`来等待所有任务完成。`std::async`会返回一个`std::future`对象,`get...

    C#多线程等待窗体

    在C#编程中,多线程技术是一种常用的方法,它能让我们在单个应用程序中同时执行多个任务,提高程序的效率和响应性。"等待窗体"是多线程应用中一个重要的概念,通常用于在后台任务执行时提供用户友好的界面反馈。本...

    使一个线程等待一个事件发生

    本篇文章将主要探讨如何利用事件对象来使一个线程等待一个事件的发生。 事件对象是Windows API中的一个核心同步工具,它可以有两种状态:有信号状态和无信号状态。当事件对象处于有信号状态时,等待该事件的线程...

    测试单个线程的CPU使用率

    本项目"测试单个线程的CPU使用率"旨在帮助开发者更好地理解和度量线程对CPU的占用情况。 首先,我们要理解CPU使用率的概念。CPU使用率是指CPU在单位时间内处于执行状态(处理任务)的时间占比,通常以百分比表示。...

    易语言多线程控制线程数量源码

    易语言提供了诸如`等待线程`、`唤醒线程`、`取消线程`等命令来协调线程之间的执行顺序。同时,还可以利用`互斥量`、`信号量`等同步机制确保共享资源的安全访问。 5. **控制线程数量**: 为了优化系统性能和避免...

    线程中创建子线程

    最后,标签中的"多线程"强调了我们讨论的核心技术,即在单个进程中同时执行多个独立的代码流。在多核或多处理器系统上,多线程可以充分利用硬件资源,提高程序的执行效率。 总结来说,"线程中创建子线程"是多线程...

    线程——基本线程的应用和线程调用控件

    - 等待/通知(wait/notify)机制:用于线程间的同步,一个线程等待另一个线程的通知后才能继续执行。 - 条件变量:在特定条件下允许线程等待,条件满足时唤醒。 - 管道(Pipe)和队列:用于线程间的通信,将数据...

    到底一个线程占用多少内存

    线程是操作系统调度的基本单位,它在执行程序的过程中扮演着重要的角色。理解线程占用的内存对于优化系统性能和管理资源至关重要。线程的内存占用主要分为两大部分:内核空间和用户空间。 首先,线程在内核空间中的...

    java 多线程下载 (单文件)

    - `Future` 和 `Callable`:用于获取线程执行的结果,便于处理下载进度和错误。 - `InputStream` 和 `OutputStream`:用于读取网络数据和写入本地文件。 - `BufferedInputStream` 和 `BufferedOutputStream`:...

    C#多线程编程实例实战.pdf

    AcquireReaderLock函数的原型为:public void AcquireReaderLock( int millisecondsTimeout ),其中的参数为线程等待调度的时间。该函数首先判断是否有写入线程存在,如果存在,则等待阅读线程数目加1,否则将当前...

    linux线程的基本概念

    - `pthread_cond_wait()`函数让线程等待条件变量的信号,释放互斥锁并在接收到信号后重新获得锁。 **多线程编程注意事项** - 线程安全:确保对共享资源的访问是线程安全的,避免数据竞争。 - 死锁预防:避免多个...

    多线程学习汇总资料,多线程学习汇总资料,

    线程池预先创建一定数量的线程,当有任务到来时,直接从池中获取空闲线程执行任务,完成后线程返回池中,减少了创建和销毁线程的开销。 7. **并发与并行**:并发是指在一段时间内多个任务交替执行,而并行是多个...

    java多线程URL方式下载单个大文件

    本篇将详细介绍如何使用Java实现基于URL的单个大文件分多线程下载。 首先,我们需要了解Java中的`java.net.URL`类,它代表一个统一资源定位符,是访问互联网资源的入口。通过`URL`对象,我们可以获取到网络资源,...

    java 中线程等待与通知的实现

    wait() 方法使当前线程等待直到其他线程调用 notify() 或 notifyAll() 方法,notify() 方法唤醒在当前对象上等待的单个线程,而 notifyAll() 方法唤醒所有在当前对象上等待的线程。 二、线程等待与通知的实现 ...

    多线程的运用e语言多线程 e多线程

    多线程是操作系统提供的一个特性,它允许多个任务在单个进程中并行执行。在E语言中,多线程能够帮助开发者在处理大量I/O操作、复杂的计算任务或者需要实时交互的应用场景时,提高程序的效率。通过创建多个线程,每个...

    多线程实例,线程实例

    1. 等待/通知(wait()和notify()):用于线程间的协作,一个线程等待另一个线程的通知后再继续执行。 2. 线程同步:使用synchronized关键字实现,防止多个线程同时访问同一块代码,避免数据不一致。 3. 守护线程...

    搜索工具多线程搜索工具多线程

    4. 结果合并:所有线程执行完毕后,将各自的结果汇总并返回给用户。 在实际应用中,多线程搜索工具广泛应用于各种场景,如文件系统搜索、网络爬虫、数据库查询优化等。例如,在大型企业环境中,可能需要快速查找...

    C# 多线程编程实例实战

    本文探索了 C# 多线程编程实例实战,特别是单个写入程序/多个阅读程序的线程同步问题。在这种情况下,写入程序需要修改共享资源,而阅读程序需要读取数据。为了解决这个问题,需要满足两个要求:当一个线程正在写入...

    Java多线程详解(超详细)_狂神说笔记完整版_项目代码_适合小白随课程学习

    - Java通过`Thread`类和`Runnable`接口支持多线程编程,提供了一种在单个进程中并发执行多个任务的方法。 2. **线程实现** - 创建线程有两种主要方式:继承`Thread`类并重写`run()`方法,或实现`Runnable`接口并...

    java实现多线程文件传输

    8. **性能调优**:合理设置线程池大小、考虑使用NIO(非阻塞I/O)以减少线程等待时间、监控系统资源使用情况,都是优化多线程文件传输性能的关键。 9. **并发工具类**:`CountDownLatch`、`CyclicBarrier`和`...

Global site tag (gtag.js) - Google Analytics