`

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...

    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,JDK1.5

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

    jdk1.5免安装版

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

    包含 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....

    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...

    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引入的最大变革之一。它允许在类、接口和方法中使用类型参数,提高了代码的类型安全性和重用性。泛型帮助程序员在编译时检查类型错误,避免了运行时的强制类型转换,使代码...

    linux下JDK1.5

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

    jdk 1.5源码 java学习必备

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

    IBMJDK1.5linux.zip

    IBM JDK 1.5还包含了JRockit Mission Control的一部分功能,这是一个强大的Java性能分析和诊断工具,可以帮助开发者监控和调试应用程序,找出性能瓶颈并进行优化。 在压缩包"IBMJDK1.5linux.zip"中,主要包含的是...

    JDK1.5、JDK5下载

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

    jdk1.5 windows 64位官方正式版,绝对有效

    JDK1.5还引入了匿名内部类的改进,允许在单个语句中声明并实例化。这使得编写简洁的事件处理器或实现简单接口变得更加方便。 对于并发编程,JDK1.5引入了java.util.concurrent包,其中包括了线程池、Future、...

    jdk jdk1.5 windows系统

    1. **泛型(Generics)**:JDK1.5引入了泛型,使得在编写代码时可以指定容器(如ArrayList、HashMap等)存储的数据类型,提高了类型安全性和代码可读性。泛型允许在编译时期检查类型,避免了类型转换异常。 2. **...

    jdk1.5、1.6压缩包

    Java开发工具包(Java Development Kit,简称JDK)是Java...尽管现代Java已经发展到了Java 17甚至更高,但JDK 1.5和1.6仍然是Java历史中不可或缺的部分,对于理解Java语言的发展历程和学习早期的最佳实践具有重要意义。

Global site tag (gtag.js) - Google Analytics