`

jdk1.5——线程并发库-java.util.concurrent.atomic

 
阅读更多

 

 

在JDK API文档搜索关键词 Atomic

 

eg: AtomicInteger   AtomicIntegerArray 等, 细节请参看API

 

需要注意的是:  jdk提供的这些类, 仅仅是针对多线程操作 成员变量时 提供的封装好的原子操作类,

如果是多线程下的局部变量需要这种类。

 

 

J2SE 5.0提供了一组atomic class来帮助我们简化同步处理。基本工作原理是使用了同步synchronized的方法实现了对一个long, integer, 对象的增、减、赋值(更新)操作。

 

java多线程用法-使用AtomicInteger来简要对比下:

class Counter {
private volatile int count = 0;


public synchronized void increment() {
count++;  //若要线程安全执行执行count++,需要加锁
}


public int getCount() {
return count;
}
}


class Counter {
private AtomicInteger count = new AtomicInteger(); 


public void increment() {
count.incrementAndGet();
}
       //使用AtomicInteger之后,不需要加锁,也可以实现线程安全。
public int getCount() {
return count.get();
}
}

 

高并发访问时统计程序计数如果不加锁是肯定线程不安全的。

AtomicInteger能够达到多而不乱,处理高并发应付自如,是因为硬件提供原子操作指令实现,

相对于第一种写法的加锁操作,后者在非激烈竞争的情况下,开销更小,速度更快。

 

Java.util.concurrent中实现的原子操作类包括:

AtomicBoolean、AtomicInteger、AtomicLong、AtomicReference。
 
 

 

 

 

分享到:
评论

相关推荐

    Java API 文档 jdk-17.0.2-doc-all

    13. **内存模型和并发工具**:`java.util.concurrent.atomic`和`java.util.concurrent.locks`包提供了原子变量和锁机制,帮助开发者正确地处理多线程环境下的共享数据。 在"docs"这个压缩包文件中,开发者可以深入...

    backport-util-concurrent(2.2 /3.1)

    总的来说,backport-util-concurrent库是Java并发编程的重要补充,它使得开发者能够利用先进的并发工具,即使在较低版本的Java环境中也能实现高效的多线程应用。无论是ReentrantLock的细粒度控制,还是Phaser的灵活...

    JDK1.5 中文版文档.rar

    9. **并发API(Concurrent APIs)**: JDK1.5加强了对多线程编程的支持,引入了并发工具类如`java.util.concurrent`包,包括`ExecutorService`、`Semaphore`、`CountDownLatch`等,以及`java.util.concurrent.atomic`...

    jdk-7u191-linux-x64.tar.gz.zip

    此外,还提供了`java.util.concurrent.atomic`包中的原子变量类,用于实现高效、线程安全的并发操作。 6. **动态语言支持**:Java 7添加了 invokedynamic 指令,为运行时绑定方法提供了更好的支持,极大地推动了...

    Redis客户端Redisson.zip

    java.util.Queue 分布式 of java.util.Deque 分布式 java.util.Map 分布式 java.util.concurrent.ConcurrentMap 通过TTL实现可重入 java.util.concurrent.locks.Lock 分布式 java.util.concurrent.atomic....

    JDK5中的多线程并发库

    在JDK5中,多线程并发库引入了一系列新的特性,极大地增强了Java处理并发问题的能力。以下是关于这个主题的详细解释: 1. **线程**: - **线程与进程的关系**:进程是一个正在执行的程序实体,而线程是进程内部的...

    java线程-Atomic的含义及示例_.docx

    Java开发工具包(JDK)提供了`java.util.concurrent.atomic`包来处理原子操作的需求。这个包中的类主要用于解决多线程环境中数据的一致性和并发问题,它们通过内部机制确保了操作的原子性,从而避免了显式锁的使用,...

    JDK concurrent

    标签 "源码" 提示我们可能会涉及Java并发库的底层实现,例如分析`java.util.concurrent`包中的类,如`ExecutorService`, `Semaphore`, `BlockingQueue`, `CountDownLatch`等的源代码。这些类在处理线程间通信、任务...

    JDK1.8 API 中文 百度翻译版 java帮助文档

    - `java.util.concurrent.atomic`包中的原子类提供了线程安全的操作。 通过阅读和理解JDK1.8 API中文百度翻译版,开发者能够充分利用Java 1.8提供的各种特性和优化,编写出更高效、更易维护的代码。这份文档是每个...

    jdk 中文版

    java.util.concurrent.atomic java.util.concurrent.locks java.util.jar java.util.logging java.util.prefs java.util.regex java.util.spi java.util.zip javax.accessibility javax.activation javax....

    jdk api 1.8_google.CHM

    2. **原子变量类**:`java.util.concurrent.atomic`包中的原子变量类如`AtomicInteger`和`AtomicReference`提供了线程安全的更新操作,无需显式同步。 三、其他重要特性 1. **方法引用**:方法引用允许直接引用一...

    实战Java高并发程序设计第二版随书代码

    - **java.util.concurrent.atomic** 包:原子变量类如AtomicInteger、AtomicLong等,以及如何使用CompareAndSwap(CAS)无锁算法实现线程安全的操作。 5. **线程池** - **ExecutorService**:理解ExecutorService...

    Java_并发核心编程-中英文版

    《Java_并发核心编程-中英文版》是一个深入探讨Java并发编程的重要资源,适用于那些希望在JDK 1.5及以后版本的Java环境中提升并发处理能力的开发者。并发编程是现代多核处理器环境下提高软件性能和效率的关键技术,...

    java jdk-api-1.6 中文 chmd

    java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 ...

    JavaSE-6.0-英文手册(2008/11/30_FullUpdate)

    java.util.concurrent.atomic java.util.concurrent.locks java.util.jar java.util.logging java.util.prefs java.util.regex java.util.spi java.util.zip javax.accessibility javax.activation javax....

    尚硅谷大厂面试题第二季周阳主讲整理笔记

    - **java.util.concurrent.atomic** 提供了原子变量类,如AtomicInteger,用于无锁编程,保证单个变量的原子操作。 - **java.util.concurrent.locks** 包含锁相关的接口和实现,如ReentrantLock,提供可中断和公平锁...

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

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

    jdk17_linux.zip

    JDK 17增加了多个新API,如`java.util.concurrent.atomic.AtomicIntegerArray.of`,方便开发者创建共享数据结构。同时,对JEP 409(增强弃用特性)的实现使得废弃API的标记更加明确。 4. 语言安全强化 JDK 17加强了...

    《Java并发编程实战》的高清完整PDF版

    6. **并发工具类**:`java.util.concurrent`包中包含了许多并发工具类,如`CountDownLatch`、`CyclicBarrier`、`Semaphore`等,它们在协调多个线程的行为时非常有用。 7. **并发设计模式**:书中会介绍一些经典的...

Global site tag (gtag.js) - Google Analytics