`
核桃博客
  • 浏览: 10405 次
  • 来自: hetaoblog
文章分类
社区版块
存档分类
最新评论

说一说java的concurrent包1--整体介绍

 
阅读更多
http://www.hetaoblog.com/%E8%AF%B4%E4%B8%80%E8%AF%B4java%E7%9A%84concurrent%E5%8C%851-%E6%95%B4%E4%BD%93%E4%BB%8B%E7%BB%8D/
前面一个系列的文章都在围绕hash展开,今天准备先说下concurrent包,这个系列可能会以使用场景说明为主,concurrent包本身的代码分析可能比较少; 我在这方面的实践经验较为有限,有错误欢迎批评指正
不过前一个系列并未结束,还有一些文章没有放出来,欢迎关注核桃博客

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

通常所说的concurrent包基本有3个package组成
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大部分都是支持这样的算法的;
分享到:
评论

相关推荐

    atlassian-util-concurrent-0.0.12.jar.zip

    本文将详细探讨Atlassian发布的`atlassian-util-concurrent-0.0.12.jar`库,这是一个专门针对并发处理的工具集,旨在简化Java开发中的多线程操作。 `atlassian-util-concurrent-0.0.12.jar.zip`是这个库的压缩文件...

    java并发工具包 java.util.concurrent中文版pdf

    为了简化并发编程的复杂性,Java 5 引入了 `java.util.concurrent` 包,提供了一系列强大的类和接口,帮助开发者更高效地管理多线程任务。 #### 二、`java.util.concurrent` 概览 `java.util.concurrent` 包提供了...

    使用java concurrent调用xmlp api生成pdf

    首先,`java.concurrent`包是Java标准库的一部分,提供了并发编程的支持,包括线程池、同步机制、并发容器等。在生成PDF的过程中,如果数据处理或转换工作量较大,可以利用并发处理来提高性能。例如,通过...

    concurrent-patterns-best-practices-synchronization

    ### 并发模式与最佳实践...综上所述,《Concurrent Patterns and Best Practices》不仅提供了丰富的理论知识,还包含了许多实用的技术细节和经验分享,对于希望深入了解并发编程的开发者来说是一本非常有价值的参考书。

    java.util.concurrent 实现线程池队列

    `java.util.concurrent` 包(简称JUC)是Java提供的一个强大的并发工具包,它提供了丰富的并发组件,如线程池、并发容器、锁和同步机制等,极大地简化了并发编程的复杂性。本篇文章将深入探讨如何使用`java.util....

    Concurrent.and.Distributed.Computing.in.Java

    1. **RMI (Remote Method Invocation)**:Java RMI允许对象通过网络调用另一个对象上的方法,就像调用本地对象一样。这使得开发人员可以轻松地创建分布式应用程序,而无需关心底层网络细节。 2. **消息队列**:在...

    Java电子钱包管理系统

    1. **Java编程语言**:Java是一种跨平台的面向对象的编程语言,具有“一次编写,到处运行”的特性。在电子钱包管理系统中,Java的强类型、内存管理机制和异常处理能力确保了系统的稳定性和安全性。 2. **MVC(Model...

    Java_并发核心编程-中文翻译_英文原版开源项目JNA-中文翻译版

    另外,Java提供了一组高级并发工具,如java.util.concurrent包下的Semaphore(信号量)、CyclicBarrier(循环屏障)、CountDownLatch(计数器门锁)和Exchanger(交换器)。这些工具可以帮助我们构建复杂的并发策略...

    Java-并发(Concurrent)编程

    Java并发编程是开发高效应用程序的关键技能之一,尤其在如今的多核处理器环境下,理解并熟练掌握并发技术至关重要。本文将深入探讨并发编程的核心概念、工具和实现机制。 首先,我们来了解一下多线程。多线程是编程...

    java.util.concurrent介绍(重要).pdf

    Java.util.concurrent 包是 Java 并发编程的重要组成部分,提供了高级并发工具和线程管理机制。这个包中包含的主要类和接口如下: 1. **线程池**: - `ExecutorService`:线程池接口,提供管理和控制线程的框架。 ...

    Java%208%20-%20GC%20cheatsheet.png.zip

    Java 8 GC(垃圾收集)速查表是一个非常有价值的资源,尤其对于那些在JVM(Java虚拟机)调优方面工作的开发人员来说。这个压缩包包含了一张名为"Java 8 - GC cheatsheet.png"的图片,它概述了Java 8中关于垃圾收集的...

    java-comm-server-client-multithread

    此外,还可以使用java.util.concurrent包下的高级并发工具,如Semaphore、ExecutorService和ThreadPoolExecutor等,来更好地管理线程池和控制并发。 项目的代码结构可能包括以下几个关键部分: 1. Server类:实现...

    java课设--网络聊天系统

    Java提供了多种并发控制工具,如synchronized关键字、wait()、notify()方法以及java.util.concurrent包下的高级工具,如ExecutorService、Semaphore等。这些工具可以帮助开发者有效地管理资源,避免线程间的竞态条件...

    Java内存模型--原子性;有序性;可见性1

    - **java.util.concurrent.atomic包下的原子类**:如AtomicInteger、AtomicLong等,它们提供了一种在不使用锁的情况下实现原子更新的方法。 ### 2. 有序性(Ordering) 有序性指的是程序执行的顺序。在多线程环境...

    Concurrent_Java8:多线程和Java8学习

    "Concurrent_Java8:多线程和Java8学习"是一个专注于研究如何在Java 8环境中有效地利用并发特性的资源。这个压缩包可能包含了一系列的源代码示例,帮助开发者深入理解并发编程的关键概念。 首先,我们来讨论多线程。...

    IBM-ETP-java培训11.Java 常用类讲解2.ppt

    同时,java.util.concurrent包提供了更高级的并发工具,如ExecutorService和Semaphore。 7. **网络编程**:Java的Socket和ServerSocket类提供了TCP/IP网络通信的基础。HttpURLConnection和HttpClient可以用于HTTP...

    Java_9_Concurrency_Cookbook_-_Second_Edition.pdf

    - **并发工具**:介绍`java.util.concurrent`包下的关键类和接口,如`ExecutorService`、`Future`、`Semaphore`等。 2. **并行流和Stream API**: - **Stream API简介**:介绍Java 8引入的Stream API及其在Java 9...

    JCS所需的资源包 concurrent.jar

    总的来说,`concurrent.jar` 是Java并发编程和缓存管理的重要工具,而JCS是一个强大的工具,能够帮助开发人员构建高效、可扩展的应用程序。通过学习和使用JCS,我们可以优化应用程序的性能,减少数据库访问压力,并...

    concurrent and nio

    Java提供了多种并发工具和机制,如线程池、同步机制(synchronized关键字、wait()、notify())、并发容器(如ConcurrentHashMap)以及并发API(java.util.concurrent包)等。这些工具设计巧妙,能帮助开发者有效地...

Global site tag (gtag.js) - Google Analytics