`
softstone
  • 浏览: 476519 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Java多线程开发九——线程池2

阅读更多

JDK1.5还提供了Callable<T>和Future<T>接口,用于线程池执行任务并获取返回值。下面给出一个简单的示例代码。

1. 实现一个任务

 

public class Caller implements Callable<Float> ...{
    
private float[] score;

    
public Caller(float[] score)...{
        
this.score = score;
    }

    
/** *//**
     * 计算平均分
     
*/

    
public Float call() throws Exception ...{
        
float sum = 0;
        
for (int i=0;i<score.length;i++)...{
            sum
+=score[i];
        }

        
return sum/score.length;
    }

}

 2.使用线程池执行任务并获取返回值

 

public class ThreadPoolSample ...{

    
float[][] scores = ......8786909176 }...5634667865 },
            
...9997958789 }...7776757885 },
            
...8856787876 } }
;

    Future
<Float>[] result = new Future[5];

    
public void count() throws InterruptedException, ExecutionException ...{
        
//创建线程池
        ExecutorService pool = Executors.newFixedThreadPool(5);
        
for (int i = 0; i < scores.length; i++...{
            
//提交任务,获取结果
            result[i] = pool.submit(new Caller(scores[i]));
        }

        
for (int i = 0; i < result.length; i++...{
            System.out.println(result[i].get());
        }

        
//关闭线程池
        pool.shutdown();
    }


    
public static void main(String[] args) ...{
        ThreadPoolSample sample 
= new ThreadPoolSample();
        
try ...{
            sample.count();
        }
 catch (InterruptedException e) ...{

            e.printStackTrace();
        }
 catch (ExecutionException e) ...{

            e.printStackTrace();
        }

    }


}

 

附:自己实现一个线程池

Tomcat的源代码中实现了一个线程池,有兴趣可以看一下。在connectors的util下面。具体目录:org\apache\tomcat\util\threads

分享到:
评论
1 楼 playboylee 2008-05-05  
看不出和正常程序有什么分别

相关推荐

    Java多线程之定时任务 以及 SpringBoot多线程实现定时任务——异步任务

    1. SpringBoot 自定义线程池以及多线程间的异步调用(@Async、@EnableAsync) 2.Java多线程之定时任务 以及 SpringBoot多线程实现定时任务 3.@EnableScheduling 与 @Scheduled

    java多线程案例——未完成

    Java多线程是Java编程中的一个重要领域,它允许程序同时执行多个任务,从而提高系统效率和资源利用率。在这个未完成的案例中,我们可能正在探讨如何在Java中创建和管理线程,以及处理多线程环境下的并发问题。下面是...

    Java多线程的小例子——吃包子

    这个名为"Java多线程的小例子——吃包子"的示例,旨在帮助开发者直观地理解多线程的工作原理。下面我们将深入探讨该示例所涉及的核心知识点。 首先,多线程通常涉及到以下几个关键概念: 1. **线程(Thread)**:...

    Java多线程下载网络图片

    在Java编程中,多线程是一项关键技能,尤其在处理并发任务时,如我们的示例——"Java多线程下载网络图片"。这个场景展示了如何利用多线程技术提高程序性能,减少用户等待时间,同时优化系统资源的使用。下面我们将...

    轻量级java多线程池demo

    本文将深入探讨一个轻量级的Java多线程池实现,这个实现允许线程间的通信,并提供了类似Akka Actor的调度功能。 首先,我们要理解Java中的线程池。线程池是一种线程使用模式,它维护一组可以重复使用的线程,避免了...

    Java练手小项目——多线程聊天室.zip

    【Java练手小项目——多线程...通过这个“Java练手小项目——多线程聊天室”,你可以深入了解Java多线程的原理和实践,同时学习到网络编程和并发集合的运用,这对于提升你的Java编程技能和解决实际问题的能力大有裨益。

    JAVA项目——多线程下载代码

    通过这个项目,学习者可以掌握Java多线程编程的基本概念和实际应用,了解线程池的使用,以及如何在并发环境中处理文件I/O。此外,还将锻炼到问题解决能力,如处理网络不稳定、断点续传等常见问题。对于Java程序员来...

    java多线程处理数据(csdn)————程序.pdf

    Java多线程处理数据是一种常见的优化策略,尤其在面临大量数据查询时,通过并发执行任务可以显著提升程序的运行效率。以下将详细解释这个程序中的关键知识点: 1. **Callable接口**:`ThredQuery`类实现了`Callable...

    java多线程的使用和介绍

    ### Java多线程的使用与介绍 #### 什么是多线程? 多线程是指程序能够同时执行多个线程的能力。每个线程都是一个轻量级的进程,可以在单个程序中独立运行,共享该程序的资源。在Java中,多线程是通过`java.lang....

    JAVA学习笔记————————

    7. **多线程**:JAVA提供了丰富的多线程支持,学习笔记会讲解线程的创建、同步、互斥以及线程池的使用。 8. **反射机制**:JAVA反射机制允许在运行时动态地获取类的信息并操作类的对象,这对于插件开发、动态代理等...

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

    在Android开发中,多线程是必不可少的一部分,特别是在执行耗时操作如网络请求、数据库操作等时,为了不阻塞主线程,我们会采用异步处理。`Future`、`FutureTask`、`Callable`和`Runnable`是Java并发编程中的核心...

    多线程下载工具——像迅雷一样的下载工具代码

    2. **Java中的多线程** 在Java中,我们可以通过两种主要的方式来创建线程:继承`Thread`类或实现`Runnable`接口。继承`Thread`类可以直接创建一个新的类,并重写`run()`方法,而实现`Runnable`接口则需要将`run()`...

    Java课程设计 Java多线程以及图形用户界面编程详解(完整代码)

    一、Java多线程编程 多线程是Java的一个强大特性,它允许一个应用程序同时执行多个任务。在Java中,每个线程代表程序中的一个独立的执行流。通过创建和管理多个线程,开发者可以提高程序的并发性,使得程序在等待I/...

    Java多线程运算集合

    - Java多线程编程涉及多个方面的知识和技术,从基本的线程创建到高级的同步机制,都是开发高效、可靠的多线程应用程序所必需的。 - 正确理解和使用这些技术对于提高程序性能、避免死锁等问题至关重要。

    Java多线程编程

    ### Java多线程编程知识点详解 #### 一、线程基础概述 - **定义与特点:** - **线程**是一种比进程更细粒度的执行单元,它允许在一个进程中并发执行多个任务。 - **轻量级进程**:线程有时被称为轻量级进程,...

    Java多线程入门介绍.pdf

    在深入探讨Java多线程之前,我们先来了解一些基本的概念——进程与线程。 - **进程**:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位。每个进程拥有独立的地址空间和其他资源。进程之间相互独立,...

    多线程面试题

    在Java编程领域,多线程是面试中常见且重要的知识点,尤其对于系统设计和高并发处理的岗位至关重要。本文将围绕“多线程面试题”这一主题,深入探讨相关概念、技术及其应用。 1. **线程的概念**:线程是程序执行的...

    java多线程编程技术

    总之,Java多线程编程技术对于高效利用现代多核处理器的计算能力、开发高性能应用程序至关重要。掌握这门技术,不仅可以编写出更高效的代码,还可以在设计系统架构时做出更加合理的决策。然而,随着并发级别的提高,...

    JAVA多线程学习笔记整理(csdn)————程序.pdf

    Java多线程是Java编程中的核心...Java多线程技术在开发高并发系统时至关重要,理解和掌握这些知识点有助于编写高效、稳定的并发程序。同时,要时刻注意线程安全问题,避免数据竞争和死锁,以保证程序的正确性和性能。

Global site tag (gtag.js) - Google Analytics