`
bo_hai
  • 浏览: 564486 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JAVA 线程执行返回结果

 
阅读更多
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class TaskWithResult implements Callable<String> {

	private int id ;
	public TaskWithResult(int id) {
		this.id = id;
	}
	
	@Override
	public String call() throws Exception {
		return "result of TaskWithResult " + id;
	}

	public static void main(String[] args) throws Exception {
		ExecutorService exec = Executors.newCachedThreadPool();
		List<Future<String>> results = new ArrayList<Future<String>>();
		for (int i = 0; i < 10; i++) {
			results.add(exec.submit(new TaskWithResult(i)));
		}
		for (Future<String> fs : results) {
			System.out.println(fs.get());
		}
		exec.shutdown();
	}
}

 

分享到:
评论

相关推荐

    多线程并行执行,汇总结果

    这时,可以设置一个`CountDownLatch`,初始化计数值为线程的数量,每个线程执行完后调用`countDown()`,最后主线程通过调用`await()`方法等待计数值变为0,即所有线程执行完毕,然后进行结果的汇总。 **汇总结果** ...

    java通过线程控制程序执行超时(新)

    在Java编程中,控制程序执行超时是一项重要的任务,特别是在多线程环境下,我们可能需要确保某个任务不会无限制地运行下去,导致资源耗尽。本文将深入探讨如何使用Java的线程机制来实现程序执行的超时控制,同时也会...

    多线程执行完后主程序再执行(包括需要子线程返回结果)

    标题提到的“多线程执行完后主程序再执行(包括需要子线程返回结果)”是一个典型的多线程同步问题。在这个场景中,主程序会启动多个子线程去执行不同的任务,然后等待所有子线程执行完毕,最后处理子线程返回的结果...

    Java线程使用教程

    3. **Future和Callable**:`Future`代表异步计算的结果,`Callable`用于创建能返回结果的线程任务,两者结合使用可获取线程执行结果。 四、并发工具类 1. **CountDownLatch**:用于计数,当计数器归零时所有等待的...

    java线程文档大全

    11. **有返回值的线程**:如果线程需要返回结果,可以使用Future和Callable接口。ExecutorService.submit()方法可以提交Callable任务并返回Future,Future.get()方法用于获取线程执行结果。 12. **原子量(Atomic ...

    java线程实例 各种小Demo

    Java线程是多任务编程的重要概念,它允许程序同时执行多个独立的任务,从而提高系统效率和响应速度。在Java中,线程可以分为用户线程和守护线程,前者是程序运行的基础,而后者是在所有用户线程结束时才终止的后台...

    java多线程查询数据库

    在Java编程中,多线程查询数据库是一种常见的优化策略,特别是在处理大数据量或者需要并行执行多个查询时。本文将详细探讨如何利用Java的多线程技术和线程池来实现并发查询数据库,以及相关的文件`BatchDataUtil....

    Java线程模块Java线程之秒表

    在Java编程语言中,线程是程序执行的最小单元,它可以并发地与程序中的其他线程一起运行。Java线程模块对于理解和实现多任务并行处理至关重要,尤其是在开发高效的、响应迅速的应用程序时。本节将深入探讨Java线程中...

    java并发(二十四)多线程结果组装

    `get()`方法用于阻塞直到任务完成并返回结果,而`isDone()`则检查任务是否已经完成。如果任务未完成,调用`get()`会阻塞当前线程,直到结果可用。 2. **Callable和Runnable**:在多线程环境中,任务可以表示为`...

    简单的java线程demo

    Java线程是多任务编程的重要..."简单的Java线程demo"可能包含以上提到的一些示例代码,通过实践运行和调试这些代码,可以帮助我们更好地理解和运用Java线程。记得在学习过程中,不断地进行实验和测试,以便加深理解。

    java线程实战手册

    8. **Future和Callable接口**:这些接口在异步编程中扮演重要角色,Callable可以返回一个结果,而Future则可以用来获取计算的结果或检查任务是否完成。 9. **并发集合**:Java提供了如ConcurrentHashMap、...

    Java线程超时监控

    在Java编程中,多线程是并发执行任务的重要方式,然而在实际应用中,我们可能会遇到某些线程执行时间过长或死锁的情况,这可能导致系统资源的浪费甚至整体性能下降。因此,对线程进行超时监控是必要的,以确保程序的...

    java多线程编程总结

    通过 `Callable` 接口和 `Future` 类可以创建能够返回结果的线程。 - **锁** `ReentrantLock`、`ReadWriteLock` 等高级锁机制提供更灵活的锁定策略。 - **信号量** 通过 `Semaphore` 类来控制对有限资源的访问...

    Java线程 学习

    - **使用Callable和Future**:对于需要返回结果的线程,可以使用`Callable`接口代替`Runnable`。`Callable`的`call()`方法的返回值可以通过`Future`接口获取。 - **线程池**:通过使用线程池,可以重复使用预创建的...

    Android(Java)之多线程结果返回——Future 、FutureTask、Callable、Runnable

    1. `Runnable`: 这是Java中最基础的多线程接口,只需实现`run()`方法,然后通过`Thread`对象启动新线程来执行这个任务。例如: ```java Runnable task = new Runnable() { @Override public void run() { // ...

    java 多线程示例

    Java线程有10个优先级,从`MIN_PRIORITY`(1)到`MAX_PRIORITY`(10),默认是`NORM_PRIORITY`(5)。优先级高的线程更可能被调度执行,但不保证。 4. **线程同步** 当多个线程访问共享资源时,可能会出现竞态条件,...

    Java多线程编程经验

    Java 5 引入了 `java.util.concurrent` 包,提供了 `Callable` 和 `Future` 接口,允许线程执行后返回结果。 #### 十四、Java线程:新特征-锁(上) Java 5 还引入了 `java.util.concurrent.locks` 包,提供了比...

    Java 多线程 PPT

    创建Java线程主要有两种方式: 1. 继承Thread类:创建Thread的子类并重写run()方法,然后通过调用start()方法启动线程。 2. 实现Runnable接口:创建一个实现了Runnable接口的类,实现run()方法,然后将该类的实例...

    JAVA多线程教材

    7. **Future与Callable接口**:Future接口代表异步计算的结果,而Callable接口允许线程返回一个结果,与Runnable相比增加了返回值的能力,常与ExecutorService结合使用。 8. **线程安全与线程不安全**:理解哪些...

    Java线程PDF

    - Callable接口类似于Runnable,但可以返回结果,并且可以通过抛出异常来指示错误。 - 使用ExecutorService的submit()方法提交Callable任务,获得Future对象来获取结果。 #### 五、线程间的通信与同步 - **线程间...

Global site tag (gtag.js) - Google Analytics