`

JDK1.5并发包学习笔记(1)

阅读更多
Jdk1.5中的多线程。
主要是在java.util.concurrent包中 ,其中几个重要的类对比如下

       5.0                          1.4
ExecutorService            取代        Thread
Callable   Future     取代                Runnable
Lock                    取代        Synchronized
SignalAll                               取代        notifyAll()
await()                    取代        wait()

Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务。Callable和Runnable有几点不同:
    Callable规定的方法是call(),而Runnable规定的方法是run().
    Callable的任务执行后可返回值,而Runnable的任务是不能返回值的。
    call()方法可抛出异常,而run()方法是不能抛出异常的。

Future对象可以获得线程运行的返回值。就是运行Callable接口后得到的结果
   
运行Callable任务可拿到一个Future对象,通过Future对象可了解任务执行情况,可取消任务的执行,还可获取任务执行的结果。
其中几个重要的方法:
Isdome() ------------------判断该线程是否已经正常结束
isCannel()-----------------判断该线程已经退出
cannel()--------------------退出该线程,用于一些死线程的退出
get()------------------------获得所要返回的结果

public class DoCallStuff implements Callable{ // *1
            private int aInt;
            public DoCallStuff(int aInt) {
                    this.aInt = aInt;
            }
            public String call() throws Exception { //*2
                    boolean resultOk = false;
                    if(aInt == 0){
                            resultOk = true;
                    }  else if(aInt == 1){
                            while(true){ //infinite loop
                                    System.out.println("looping....");
                                    Thread.sleep(3000);
                            }
                    } else {
                            throw new Exception("Callable terminated with Exception!"); //*3
                    }
                    if(resultOk){
                            return "Task done.";
                    } else {
                            return "Task failed";
                    }
            }
    }
    *1: 名为DoCallStuff类实现了Callable,String将是call方法的返回值类型。例子中用了String,但可以是任何Java类。
    *2: call方法的返回值类型为String,这是和类的定义相对应的。并且可以抛出异常。
    *3: call方法可以抛出异常,如加重的斜体字所示。
分享到:
评论

相关推荐

    jdk1.5 windows版本 64位

    1. **JDK 1.5 版本**: JDK 1.5,代号为" Tiger",是Java历史上的一个重要里程碑。它于2004年9月30日正式发布,引入了许多新的特性,如自动内存管理的增强(例如泛型、枚举、变量类型推断、增强的for循环),对XML...

    jdk1.5x64位 windows版.zip

    Java Development Kit(JDK)是Java编程语言的核心组件,它为开发者提供了编译、调试和运行Java应用程序所需的所有工具。...文件"jdk-1_5_0_17-windows-x64.exe"就是用于安装这个特定版本的JDK的可执行文件。

    linux系统jdk1.5下载

    `jdk-1_5_0_22-linux-amd64.rpm`文件就是专门为Linux的AMD64架构设计的JDK1.5 RPM安装包。以下是安装步骤: 1. **检查系统兼容性**:确保你的Linux发行版是基于RPM的,例如Fedora、CentOS或RHEL,并且系统架构是64...

    JDK1.5,JDK1.5

    JDK1.5,全称Java Development Kit 1.5,是Java平台标准版(Java SE)的一个重要版本,由Sun Microsystems在2004年9月30日正式发布。这个版本引入了大量的新特性,对Java编程语言进行了重大改进,极大地提升了开发...

    Java-jdk1.5安装包

    JDK1.5,也称为Java 5.0,是一个重要的版本,它引入了许多新的特性和改进,对Java语言的发展产生了深远影响。 一、泛型(Generics) 在Java 5.0中,最重要的特性之一就是泛型的引入。泛型允许开发者在定义类、接口...

    jdk1.5.exe jdk1.5

    jdk1.5.exe jdk1.5 jdk1.5下载

    JDK1.5的32位和64位安装包

    至于提供的两个压缩包文件,`jdk-1_5_0_22-windows-i586-p.exe`是32位版本的JDK1.5,适用于32位操作系统的计算机。而`jdk-1_5_0_22-windows-amd64.exe`则是64位版本,用于64位操作系统。选择哪个版本取决于你的系统...

    jdk1.5 windows 64位官方正式版

    1. **泛型(Generics)**:泛型是JDK 1.5最显著的新特性之一,它允许在类、接口和方法中使用类型参数,从而提高了代码的类型安全性和重用性。这减少了在运行时可能遇到的ClassCastException。 2. **自动装箱/拆箱...

    jdk1.5免安装版

    绝版jdk1.5,非常不错的资源。用起来很好。是 Java语言对Bean类属性、事件的一种缺省处理方法。例如类A中有属性name,那我们可以通过getName,setName来得到其值或者设置新 的值。通过getName/setName来访问name属性,...

    JDK1.5最终版全平台下载

    JDK1.5 全平台安装包下载 百度网盘资源 jdk-1_5_0_22-linux-amd64-rpm.bin jdk-1_5_0_22-linux-amd64.bin jdk-1_5_0_22-linux-i586-rpm.bin jdk-1_5_0_22-linux-i586.bin jdk-1_5_0_22-solaris-amd64...

    包含 jdk1.5免安装、jdk1.6免安装、jdk1.8(32和64)

    这个压缩包包含了三个不同版本的JDK:JDK 1.5、JDK 1.6和JDK 1.8,其中1.5和1.6是早期版本,而1.8是最流行且广泛使用的版本之一。 **JDK 1.5(也称为Java 5.0)** JDK 1.5在2004年发布,引入了许多重要的新特性,如...

    简单易用通用(xls,xlsx)导入导出操作 jdk1.5+

    前几天上传过这个资源,因为是在jdk1.6上开发的, 测试了一下在jdk1.5上不能用, 今天重新用jdk1.5编译了一下, 这个是可以支持jdk1.5+的 将 pu-xlscommon-1.0.0.jar 添加到工程的 /lib 目录下 用法在附件中 XlsTest....

    IBM_jdk1.5_Guide.zip_IBM jdk 1.5_aix_ibm java1.5_ibm jdk1.5 wind

    在学习和使用IBM JDK 1.5时,开发者应该熟悉其特定的命令行选项、性能调优策略以及与标准Java SE的差异。通过深入阅读IBM_jdk1.5_Guide.pdf,开发者可以掌握如何在AIX系统上部署和运行Java应用,同时利用IBM JDK 1.5...

    jdk 1.5 linux (共三个文件)之一

    测试可用的linux版jdk1.5,jdk-1_5_0_19-linux-i586-rpm.bin

    window JDK1.5 32位 绿色免安装版,可以安装多个JDK使用

    在Windows系统中,可以通过设置环境变量`JAVA_HOME`指向所需版本的JDK,并通过`PATH`变量来控制命令行中默认使用的JDK版本。 总结来说,JDK1.5 32位绿色免安装版为Windows用户提供了便捷的Java开发和运行环境,特别...

    详细介绍JDK1.5的各种新特性

    1. **泛型(Generics)**:泛型是JDK1.5引入的最大变革之一。它允许在类、接口和方法中使用类型参数,提高了代码的类型安全性和重用性。泛型帮助程序员在编译时检查类型错误,避免了运行时的强制类型转换,使代码...

    JDK1.5版本免费下载

    本资源提供的是JDK 1.5版本的32位安装包,适用于那些仍然需要支持较旧系统或者特定项目需求的开发者。 JDK 1.5,也被称为Java SE 5.0,于2004年9月30日正式发布,是Java发展历程中的一个重要里程碑。这个版本引入了...

    JDK1.5、JDK5下载

    JDK1.5,也被称为JDK 5.0,是一个重要的版本,它引入了许多创新特性,显著提升了开发效率和代码质量。这个版本在2004年发布,是Java发展历程中的一个里程碑。 JDK1.5的主要新特性包括: 1. **泛型(Generics)**:...

    linux下JDK1.5

    1. **下载**:你需要从Oracle官方网站或者第三方镜像站点下载适用于Linux操作系统的JDK1.5安装包。文件名为`linx_jdk1.5`可能就是这个安装包的名称。 2. **解压**:使用`tar`命令来解压下载的文件。例如,如果`linx...

    jdk 1.5源码 java学习必备

    jdk 1.5源码 之前csdn上有看到 但是明显大小不对了 完整的应该有56M 由于大小限制 分割成4部分上传的

Global site tag (gtag.js) - Google Analytics