`

java 线程future - 3

    博客分类:
  • java
 
阅读更多
package com.hym.test.thread;

import java.util.concurrent.Callable;
import java.util.concurrent.CompletionService;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorCompletionService;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class CallableAndFuture3 {
	public static void main(String[] args) {
		ExecutorService threadPool = Executors.newCachedThreadPool();
		CompletionService<Integer> cs = new ExecutorCompletionService<Integer>(
				threadPool);
		for (int i = 1; i < 5; i++) {
			final int taskID = i;
			cs.submit(new Callable<Integer>() {
				public Integer call() throws Exception {
					return taskID;
				}
			});
		}
		// 可能做一些事情
		for (int i = 1; i < 5; i++) {
			try {
				System.out.println(cs.take().get());
			} catch (InterruptedException e) {
				e.printStackTrace();
			} catch (ExecutionException e) {
				e.printStackTrace();
			}
		}
	}
}
分享到:
评论

相关推荐

    java多线程源码-source

    3. 线程状态与控制 Java提供了几种方法来控制线程的执行,如sleep(), join(), yield(), interrupt()等。sleep()方法使当前线程进入睡眠状态;join()让当前线程等待指定线程结束后再继续执行;yield()则让当前线程...

    WHUT-java多线程实验-第三周-文件上传和下载.zip

    5. **资源管理**:Java提供`ExecutorService`和`Future`接口,帮助开发者更好地管理和控制线程池,防止过多线程导致系统资源耗尽。 在实现多线程文件上传和下载时,通常会用到以下Java API: - **Thread**:基础的...

    java多线程学习-ftp上传

    Java多线程学习是编程领域中的重要一环,特别是在服务器端和网络编程中,多线程技术能够有效地利用系统资源,提高程序的并发性。FTP(File Transfer Protocol)上传则是通过网络将本地文件传输到远程服务器的过程。...

    JAVA-JavaThreadProgramming-Sams.zip_JAVA 设计_java 多线程_java 线程_多线程

    Java线程编程是Java开发中的重要组成部分,尤其在构建高性能、高并发的应用程序时不可或缺。本资料"JAVA-JavaThreadProgramming-Sams.zip"提供了一套详细的教程,旨在深入讲解Java中的多线程设计和实现。 Java多...

    java-java面试题库整理-基础-JVM-线程并发-框架等.zip

    - 线程概念:理解线程的生命周期,创建线程的方式(Thread类、Runnable接口、Callable和Future)。 - 同步机制:掌握synchronized关键字,了解锁的概念,包括可重入锁、死锁、活锁和饥饿状态。 - 线程池:熟悉...

    Java使用Callable和Future创建线程操作示例

    Java使用Callable和Future创建线程操作示例主要介绍了Java使用Callable和Future创建线程操作,结合实例形式分析了java使用Callable接口和Future类创建线程的相关操作技巧与注意事项。 首先,Java 5开始,Java提供了...

    WHUT-java多线程实验-第二周-异常处理.zip

    3. **线程池(ExecutorService、ThreadPoolExecutor、Executors)**:Java提供了线程池来管理线程,当线程抛出异常时,线程池可以决定如何处理,比如是否需要关闭整个线程池,或者重新启动新的线程。 4. **异常传播...

    Java线程-第三版(CHM电子版)

    3. **并发工具类**:Java并发库(java.util.concurrent)提供了丰富的工具类,如`ExecutorService`、`ThreadPoolExecutor`、`Future`、`Semaphore`、`CyclicBarrier`和`CountDownLatch`等。这些工具能帮助开发者更...

    Java多线程-JDK5.0新增线程创建方式

    ### Java多线程-JDK5.0新增线程创建方式 #### 一、新增方式1:实现Callable接口 ##### (1)介绍 自Java 5.0起,为提高线程管理的灵活性与效率,引入了`Callable`接口,这是一种全新的创建线程的方式。与传统的`...

    Java线程PDF

    ### Java线程知识点详解 #### 一、Java线程概览 - **定义**: Java线程是Java语言中实现多线程编程的核心概念之一。它允许开发者在一个进程中创建多个独立执行的路径,这些路径可以并发运行,从而提高程序的效率和...

    Java-concurrency-master.zip

    3. **并发集合**:Java提供了一系列线程安全的集合类,如`ConcurrentHashMap`、`CopyOnWriteArrayList`等,这些集合在内部实现了同步机制,可以在多线程环境下安全地使用。 4. **原子操作**:`java.util.concurrent...

    面试-Java一些常见面试题+题解之多线程开发-JavaConcurrent.zip

    - Java线程具有优先级,但实际调度很大程度上依赖于操作系统,不保证优先级高的线程优先执行。 10. **中断机制** - Thread类的interrupt()方法用于请求中断线程,isInterrupted()和interrupted()检查中断状态。 ...

    JAVA语言深入--多线程

    ExecutorService 和 Future 接口是Java并发框架的重要组成部分,它们提供了更高级别的线程管理和任务执行能力。 总的来说,深入理解Java的多线程机制对于编写高效、健壮的并发程序至关重要。开发者需要掌握线程的...

    Java多线程编程总结

    #### 一、Java线程:概念与原理 1. **操作系统中线程和进程的概念** - 当前的操作系统通常为多任务操作系统,多线程是实现多任务的一种手段。 - **进程**:指内存中运行的应用程序,每个进程拥有独立的内存空间。...

    Java线程 学习

    ### Java线程学习知识点 #### 一、Java线程概览 - **定义与作用**:线程是在程序中独立且并发执行的路径。在Java中,线程被设计为语言的一部分,而不是作为操作系统的底层工具。每个Java程序至少包含一个主线程,在...

    Java特别篇-关于线程创建的三种方式的总结对比

    ##### (3)方式3:通过Callable和Future接口创建线程 - **创建步骤**: - 创建一个类,实现`Callable&lt;V&gt;`接口。 - 重写`call()`方法,该方法将包含线程要执行的任务。 - 使用`ExecutorService`接口中的方法来...

    JAVA并发编程实践-线程执行-学习笔记

    占式线程调度是Java和大多数现代操作系统采用的线程调度策略。在这种模式下,操作系统决定何时以及哪个线程将获得CPU的执行时间。线程的执行不是由线程自身控制,而是由操作系统通过时间片轮转或者优先级调度等方式...

    Java线程(第三版)

    《Java线程(第三版)》是一本深入探讨Java线程技术的专业书籍,旨在帮助开发者理解和掌握Java平台上的多线程编程。Java线程是并发编程的重要组成部分,它允许程序同时执行多个任务,从而充分利用系统资源,提高程序的...

    java基础--11.多线程

    - Java线程有10个优先级,从Thread.MIN_PRIORITY(1)到Thread.MAX_PRIORITY(10),默认优先级是Thread.NORM_PRIORITY(5)。优先级高的线程有机会先获得CPU资源,但并不保证。 4. **守护线程(Daemon)** - ...

Global site tag (gtag.js) - Google Analytics