concurrent包简介 Atomic类

简单的说,这些类都是线程安全的,支持无阻塞无锁定的  

Java代码  

set()  

get()  

getAndSet()  

getAndIncrement()  

getAndDecrement()  

getAndAdd()  


等操作  

下面是一个测试代码  concurrent包简介 Atomic类

 

可以看到,10个线程,每个线程运行了10,000次,理论上应该有100,000次增加,使用了普通的long是非线程安全的,而使用了AtomicLong是线程安全的;  
 

注意,这个例子也说明,虽然long本身的单个设置是原子的,要么成功要么不成功,但是诸如count++这样的操作就不是线程安全的;因为这包括了读取和写入两步操作;