`
春花秋月何时了
  • 浏览: 41847 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Java并发包java.util.concurrent包结构概述

 
阅读更多

引言

        前面使用了大量的章节对线程、Java内存模型、synchronized锁等进行了详细的介绍,同时也清楚了其实大部分的内容都是在围绕着并发过程中的原子性、可见性和有序性进行探讨,除了synchronized这样的隐式锁,前文还提到Lock对象支持的显式锁同样能够对这三大特征进行支持。从本章节开始,我们将致力于对Lock对象显式锁的探讨。

        Lock对象显式锁其实是Java并发包(java.util.concurrent)中的重要内容,它是J2EE5.0之后才引入的。其相对于synchronized隐式锁更加强大与灵活,并且对锁的操作花费的代价更低。要想在并发开发过程中做到游刃有余,对这部分内容的掌握不可或缺。

        为了能够对这部分的内容能够有较深入的了解,接下来的章节将会由最底层的基础元件开始介绍学习,只有对这些最底层的基础单元有了理解,才能在使用上层API的时候做到心里有数,而不是知其然不知其所以然。关于Java并发包(java.util.concurrent)又可以简称为JUC,可以分为以下几个部分,后文也将按照这样的顺序进行学习。

  1. Java并发包基础元件:sun.misc.Unsafe类、LockSupport
  2. Java并发包核心框架AbstractQueuedSynchronizer、Condition接口、Lock接口
  3. Java并发包同步组件ReentrantLock、CylicBarrer、Semaphore、CountDownLatch、ReadWriteLock/ReentrantReadWriteLock、StampedLock
  4. 同步数据结构之原子类:AtomicInteger、AtomicBoolean、AtomicLong、AtomicReference等
  5. 同步工具类:Phaser、Exchanger、ThreadLocalRandom
  6. 同步数据结构之Queue类:BlockingQueue接口、ArrayBlockingQueue、LinkedBlockingQueue、ConcurrentLinkedQueue、LinkedTransferQueue、PriorityBlockingQueue、DelayQueue、SynchronousQueue
  7. 同步数据结构之Deque类:BlockingDeque接口、ConcurrentLinkedDeque、LinkedBlockingDeque
  8. 同步数据结构之List类CopyOnWriteArrayList
  9. 同步数据结构之Set类:CopyOnWriteArraySet、ConcurrentSkipListSet
  10. 同步数据结构之Map类:ConcurrentMap接口、ConcurrentHashMap、ConcurrentNavigableMap、ConcurrentSkipListMap
  11. 线程池:Executor、ExecutorService、ExecutorCompletionService、Executors、ScheduledThreadPoolExecutor
  12. fork/join:ForkJoinPool、ForkJoinTask、ForkJoinWorkerThread等

除了第一个基础类sun.misc.Unsafe,其他所有的内容都是出自java.util.concurrent包及其子包下。 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Java并发编程实践-03章-使用JDK并发包构建程序1

    `java.util.concurrent`包是Java标准库中专门用于并发编程的模块,它包含了各种线程安全的数据结构、同步机制和执行模型。这个包的引入极大地简化了并发编程的复杂性,提供了一套高效且易用的并发工具。 **3.2 ...

    Java多线程基础-01、数组概述.rar

    除此之外,Java的并发包`java.util.concurrent`提供了更高级的线程同步工具,如Semaphore(信号量)用于控制同时访问特定资源的线程数量,CyclicBarrier(循环屏障)允许一组线程等待彼此到达某个点后再继续执行,...

    java jdk api中文开发文档(免币)

    13. **并发工具类**:Java并发包(java.util.concurrent)包含了很多高级并发工具,如ExecutorService、Semaphore、CountDownLatch等。 14. **国际化**:Java提供了Locale和ResourceBundle类,支持多语言环境下的...

    离线JDK9中文版 | API_jdk-9.CHM

    2. **并发包**:如`java.util.concurrent`,包含线程安全的数据结构和并发工具类。 3. **网络包**:如`java.net`,处理网络通信和套接字。 4. **模块系统相关的包**:如`java.module`,用于模块化系统的API。 5. ...

    java并发编程实践

    Java并发包`java.util.concurrent`提供了许多高级工具类来帮助开发者更好地管理并发任务,如`ExecutorService`、`Future`、`Semaphore`、`CountDownLatch`等。这些工具类极大地简化了并发编程的难度,并提高了程序的...

    Java并发编程实践-电子书1-9章pdf

    3. **第三章:并发工具类** - 本章可能会详细介绍Java并发包(java.util.concurrent)中的工具类,如ExecutorService、Future、Callable、Semaphore、CyclicBarrier、CountDownLatch等,这些工具极大地简化了并发...

    java学习内容[文].pdf

    4. 并发包:分析java.util.concurrent中的并发工具类,如ConcurrentHashMap、ThreadPoolExecutor、FutureTask、Semaphore、Condition、ReentrantReadWriteLock等。 5. JVM:深入理解JVM的工作机制,包括代码的编译、...

    JAVA API 文档中文版chm

    10. **并发工具**:Java并发包(java.util.concurrent)提供了许多高级并发工具,如ExecutorService、Semaphore、CountDownLatch等,用于构建高性能并发程序。 11. **JavaBeans和事件模型**:JavaBeans规范定义了一...

    并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法

    `ConcurrentLinkedQueue` 是 Java 并发包 `java.util.concurrent` 提供的一个高性能的线程安全队列实现,基于链表结构,它适用于对吞吐量有较高要求的场景。`ConcurrentLinkedQueue` 不提供容量限制,并且在队列为空...

    jdk1.6 中文API

    6. `java.concurrent`:并发包,提供了多线程编程的支持,如Thread、ExecutorService、Future等。 三、Java SDK 1.6的新特性 1. 改进的泛型:引入了类型注解,增强了泛型的类型安全性。 2. 遗留的数组注解:允许...

    Java开发技术大全 Java开发实战经典下载地址

    - 并发工具类:了解并发包(java.util.concurrent)中的高级工具类,如ExecutorService、CountDownLatch等。 #### 三、Java高级篇 1. **网络编程**: - Socket编程:Socket是网络通信的基础,掌握TCP/IP和UDP...

    java线程使用教程

    - **并发工具类**:Java并发包(`java.util.concurrent`)提供了大量工具类,如`Future`、`Callable`等,用于处理异步计算结果;`AtomicInteger`、`AtomicLong`等原子类用于实现高效的线程安全的整数操作;`...

    JDK1.7源码

    在JDK1.7中,增加了对try-with-resources语句的支持,改进了并发包java.util.concurrent,并增强了File API。 3. **javax包**:这个包通常包含了Java扩展API,如Swing组件、JavaMail、JAXP(Java API for XML ...

    JRE1.8.txt

    Java 8对并发包 `java.util.concurrent` 进行了一系列改进,提高了线程池和其他并发工具的性能,并新增了一些实用的并发类,如 `CompletableFuture`,用于简化异步编程。 ##### 6. 类型推断 在Java 8中,类型推断...

    Scalable IO in Java

    Doug Lea是纽约州立大学奥斯威戈分校的一名教授,同时也是Java并发包(java.util.concurrent)的主要贡献者之一。本次演讲深入探讨了可扩展网络服务的设计、事件驱动处理以及反应器模式等内容,并通过实例讲解了Java...

Global site tag (gtag.js) - Google Analytics