`
- 浏览:
370344 次
- 性别:
- 来自:
Alien
-
java线程:关于Callable和Future的简单使用:有返回值的线程
分类: java_线程2012-07-03 19:25 53人阅读 收藏 举报
- import java.util.Random;
- import java.util.concurrent.Callable;
- import java.util.concurrent.ExecutorService;
- import java.util.concurrent.Executors;
- import java.util.concurrent.Future;
-
-
-
-
-
- public class CallableAndFutureTest {
-
- public static void main(String[] args) {
-
-
- ExecutorService threadPool = Executors.newFixedThreadPool(5);
-
-
- for(int i = 0; i < 20; i++){
- Future<String> future = threadPool.submit(new Callable<String>() {
- @Override
- public String call() throws Exception {
- return new Random().nextInt() + "";
- }
- });
-
- try {
- sop(i+ ": " + future.get());
- } catch (Exception e) {
-
- if( future != null ){
-
- future.cancel(true);
- threadPool.shutdownNow();
- }
- throw new RuntimeException(e);
- }
- }
- }
-
- private static void sop(Object obj){
- System.out.println(obj);
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Java使用Callable和Future创建线程操作示例主要介绍了Java使用Callable和Future创建线程操作,结合实例形式分析了java使用Callable接口和Future类创建线程的相关操作技巧与注意事项。 首先,Java 5开始,Java提供了...
Java多线程Callable和Future接口是Java语言中两个非常重要的接口,它们都是Java多线程编程中使用的接口,用于描述异步计算的结果。在JavaSE5中引入的Callable是一个具有类型参数的范型,他的类型参数方法表示为方法...
使用`ExecutorService`和`Future`,我们可以方便地并行执行多个带有返回值的任务,而且不需要手动管理线程。这种模式在处理大量并发任务或进行分布式计算时尤其有用,因为它允许我们高效地利用系统资源,同时保持...
Java 5 引入了 `java.util.concurrent` 包,提供了 `Callable` 和 `Future` 接口,允许线程执行后返回结果。 #### 十四、Java线程:新特征-锁(上) Java 5 还引入了 `java.util.concurrent.locks` 包,提供了比...
Java中的Runnable、Callable、Future和FutureTask是Java多线程编程中的核心概念,它们各自扮演着不同的角色,共同协作以实现并发任务的管理和执行。 1. **Runnable**: Runnable是最基本的多线程接口,它只有一个`...
#### 十三、Java线程:新特征-有返回值的线程 - `Callable` 接口允许线程执行后返回结果,`Future` 接口用于获取这些结果。 #### 十四、Java线程:新特征-锁(上)&(下) - `java.util.concurrent.locks` 包提供...
大家都知道实现多线程的2种方式,今天来讲讲Future实现具有返回值的线程。应用场景:前端调用时无需等待线程结束返回,线程结束后需进行其它操作如更新状态、通知kafuka等。
总之,要实现有返回值的线程,我们可以使用Java的`Callable`接口和`Future`、`ExecutorService`等工具,这些机制允许我们在异步环境中获取任务执行的结果。对于`jdbctest`,可能包含的是使用JDBC进行数据库操作的多...
Callable接口位于`java.util.concurrent`包下,它的主要方法是`call()`,这个方法相当于Runnable的`run()`,但`call()`可以有返回值和抛出异常。当我们需要在线程中执行一个计算任务并获取结果时,Callable就非常...
- **Callable接口**:配合`FutureTask`使用,实现有返回值的任务。 #### 十三、Java线程:新特征-锁 - **显式锁**:使用`ReentrantLock`类实现更高级的锁特性,如公平锁、非公平锁等。 - **读写锁**:`...
### Java Callable与多线程详解 在Java编程中,`Callable`接口是...通过以上分析和示例,我们可以看到`Callable`和`Future`在Java多线程编程中的强大功能,尤其是在需要处理复杂的异步任务和需要返回结果的情况下。
- **有返回值的线程**:通过`Callable`和`Future`实现线程的返回值,提供了更灵活的异步编程模型。 - **锁**:高级锁机制如`ReentrantLock`,提供了比`synchronized`更灵活的锁定策略。 - **信号量**:控制对有限...
通过 `Callable` 接口和 `Future` 类可以创建能够返回结果的线程。 - **锁** `ReentrantLock`、`ReadWriteLock` 等高级锁机制提供更灵活的锁定策略。 - **信号量** 通过 `Semaphore` 类来控制对有限资源的访问...
总结一下,`Runnable`用于无返回值的简单任务,`Callable`用于有返回值的任务,`Future`作为结果的容器,而`FutureTask`则将两者结合,使得`Callable`的任务可以通过`ExecutorService`执行。在实际开发中,根据需求...
2. **有返回值的线程**:`Future`和`Callable`接口组合实现。 3. **锁**:`java.util.concurrent.locks`包提供了更灵活的锁机制,如读写锁、条件变量等。 4. **原子量**:`Atomic`类提供原子操作,确保多线程环境下...
Callable接口和Future接口的组合使用,能够实现多线程并发执行任务,并获取执行结果。 一、Callable接口简介 Callable接口是一个泛型接口,用于表示可以调用并返回结果的代码。它提供了一个call()方法,该方法...
在Java编程中,Callable接口和Future接口是多线程编程中的重要工具,它们在Web应用程序的性能优化中扮演着关键角色。本篇文章将深入探讨Callable和Future如何在Web应用中提高效率并优化资源利用。 Callable接口是...
Java新特性中引入了线程池、`Future`和`Callable`接口支持有返回值的线程、高级锁机制、信号量、阻塞队列等,为多线程编程提供了更强大和灵活的支持。 综上所述,Java多线程编程涉及到线程的概念、创建与启动、线程...
Java多线程的使用能够提高程序的并发性能,但同时也需要注意线程安全和死锁等问题,合理设计线程的生命周期和同步机制对于编写高效、稳定的多线程程序至关重要。在开发过程中,应充分利用Java提供的并发工具类,如...
11. **有返回值的线程**:如果线程需要返回结果,可以使用Future和Callable接口。ExecutorService.submit()方法可以提交Callable任务并返回Future,Future.get()方法用于获取线程执行结果。 12. **原子量(Atomic ...