`

说一说java的concurrent包-系列文章

 
阅读更多

说一说javaconcurrent-系列文章

前面一个系列的文章都在围绕hash展开,今天准备先说下concurrent包,这个系列可能会以使用场景说明为主,concurrent包本身的代码分析可能比较少;我在这方面的实践经验较为有限,有错误欢迎批评指正 
不过前一个系列并未结束,还有一些文章没有放出来,欢迎关注核桃博客 

concurrent
包是jdk1.5引入的重要的包,主要代码由大牛Doug Lea完成,其实是在jdk1.4时代,由于java语言内置对多线程编程的支持比较基础和有限,所以他写了这个,因为实在太过于优秀,所以被加入到jdk之中; 

通常所说的concurrent包基本有3package组成 
java.util.concurrent
:提供大部分关于并发的接口和类,如BlockingQueue,Callable,ConcurrentHashMap,ExecutorService, Semaphore 
java.util.concurrent.atomic
:提供所有原子操作的类,AtomicInteger, AtomicLong等; 
java.util.concurrent.locks:
提供锁相关的类, Lock, ReentrantLock, ReadWriteLock, Condition等; 

concurrent
包的优点: 
1.
首先,功能非常丰富,诸如线程池(ThreadPoolExecutor)CountDownLatch等并发编程中需要的类已经有现成的实现,不需要自己去实现一套;毕竟jdk1.4对多线程编程的主要支持几乎就只有Thread, Runnable,synchronized 
2. concurrent
包里面的一些操作是基于硬件级别的CAS(compare and swap),就是在cpu级别提供了原子操作,简单的说就可以提供无阻塞、无锁定的算法;而现代cpu大部分都是支持这样的算法的;

 

分享到:
评论

相关推荐

    java.util.concurrent系列文章(1)

    ### Java.util.concurrent 系列文章知识点总结 #### 一、引言 随着多核处理器的普及,多线程编程已成为现代软件开发中的一个重要组成部分。Java 5 引入了 `java.util.concurrent` 包,该包提供了丰富的 API 来简化...

    java并发源码-java-concurrent-test:和朱晔一起复习Java并发系列文章

    《和朱晔一起复习Java并发》是一系列专门探讨Java并发的文章,可能涵盖了以下关键知识点: 1. **线程基础**:Java中的`Thread`类,如何创建和启动线程,以及线程的状态转换(新建、就绪、运行、阻塞、死亡)。 2. ...

    java.util.concurrent系列文章(2)

    ### Java.util.concurrent 系列文章(2):深入理解 ConcurrentHashMap #### 一、引言 在上一篇文章中,我们简要介绍了并发集合类的基本概念及其重要性,并探讨了如何通过共享数据结构的方法来提高程序的并发性和...

    Java Concurrent处理并发需求

    其中,`java.util.concurrent`包是Java 5引入的一个重要特性,它提供了高级并发机制的支持,使得开发者能够更高效地编写并发程序。 #### 二、Concurrent API的核心组件 `java.util.concurrent`包包含了多个核心...

    The java. util. concurrent synchronizer framework.pdf

    AQS(AbstractQueuedSynchronizer)是Java.util.concurrent包中同步器的基础框架,它的核心设计思想与实现方法在Doug Lea先生的这篇论文中有详细的介绍。论文详细阐述了AQS框架的原理、设计、实现、应用以及性能等...

    The java.util.concurrent synchronizer framework.pdf

    文档中提到了AbstractQueuedSynchronizer类,这个类是Java 5.0中java.util.concurrent包大多数同步器的基础,如锁、屏障等同步器。这些同步器以AbstractQueuedSynchronizer为基础框架,提供了原子管理同步状态、阻塞...

    Java多线程文章系列

    以下是对Java多线程系列文章的详细知识点总结: 1. **线程基础** - **线程的概念**:线程是操作系统分配CPU时间的基本单位,每个线程拥有独立的程序计数器、寄存器和栈。 - **线程创建**:Java提供了两种创建线程...

    java_high_concurrent_wwj.rar

    这个压缩包文件"java_high_concurrent_wwj.rar"显然包含了关于Java并发编程的详细内容,很可能是吴伟杰(WWJ)编著或者整理的一系列教程或文章。在这个主题下,我们可以探讨以下几个关键知识点: 1. **线程基础**:...

    java高手的文章合集

    这个"java高手的文章合集"很可能包含了一系列深入探讨Java技术、最佳实践以及问题解决策略的文章。以下是一些可能涵盖的知识点: 1. **Java基础知识**:文章可能会介绍Java的基本语法,包括数据类型、变量、控制流...

    13-Java并发编程学习宝典.zip

    "13-Java并发编程学习宝典.zip" 包含了一系列关于Java并发编程的学习资源,旨在帮助开发者掌握多线程编程的核心技术和最佳实践。以下是这些资源所涵盖的关键知识点: 1. **多线程基础** - "03 多线程开发如此简单—...

    vip-v2-concurrent.zip

    诸如`Atomic`系列类、`ThreadLocal`等,都是Java提供的线程安全工具,它们能帮助开发者编写高效且线程安全的代码,避免了显式的同步操作。 理解并熟练掌握线程编程是每个Java程序员的必备技能,尤其是在高并发、大...

    Java多线程之ReentrantLock与Condition - 平凡希 - 博客园1

    Java中的`ReentrantLock`是Java并发包`java.util.concurrent.locks`中的一个高级锁机制,它是可重入的互斥锁,具有与`synchronized`关键字相似的同步性,但提供了更多的灵活性和控制功能。本篇文章将深入探讨`...

    Java5.0多线程编程实践.pdf

    总的来说,Java 5.0通过引入`java.util.concurrent`包,极大地丰富了Java的多线程编程能力,使得开发者能够在多线程环境下更加高效、安全地编写程序。上述知识点和示例展示了如何利用Java 5.0提供的并发工具,构建...

    java内存管理白皮书

    在最后,文章还列出了一系列用于控制垃圾收集行为和选择垃圾收集器的关键参数,这些参数包括但不限于堆的大小、垃圾收集器的类型、分代的大小等。这些参数的设置通常会影响到垃圾收集的效率和应用的性能。 总结来看...

    java多线程系列(四)ReentrantLock的使用.docx

    本篇文章将深入探讨`ReentrantLock`的使用,它是Java并发包`java.util.concurrent.locks`中的一个高级锁机制,相比传统的`synchronized`关键字,提供了更丰富的功能和更灵活的控制。 `ReentrantLock`全称为可重入锁...

    SWING资料大集合

    - **并发编程资源**:《Java并发编程实战》(Concurrent Programming in Java)是一本经典的Java多线程书籍,而《Java线程》(Java Thread)第三版也是学习Java线程的重要参考书目之一。 ### Swing学习资源 - **Sun...

    JDK_API_1_6

    JDK 1.6在并发编程方面进行了显著增强,新增了`java.util.concurrent`包,其中包括了一系列用于构建高效并发应用程序的工具类。例如: - **Executor框架**:提供了一个高级抽象来管理线程池和执行任务。 - **原子...

    jdk1.6.zip

    - **并发编程**:增加了`java.util.concurrent`包,包含线程池、并发容器和并发工具类,简化了多线程编程。 - **安全增强**:增强了沙箱模型,提高了安全性,比如对Java插件和Applet的控制更加严格。 - **脚本语言...

Global site tag (gtag.js) - Google Analytics