package learn.thread;
import java.util.concurrent.atomic.AtomicInteger;
/*
java原子类,通过Integer原子类进行减一并返回自身操作,免去加锁操作
(变量在多线程环境下,例如减1操作是有三步的,每一步为一个原子操作,
分取值,加一,再赋值回去,使用原子类的方法则把这3步实现为一个原子操作)
*/
public class Demo19 extends Thread {
@Override
public void run() {
new DB2().buy();
}
public static void main(String[] args) {
Demo19 t1 = new Demo19();
Demo19 t2 = new Demo19();
Demo19 t3 = new Demo19();
Demo19 t4 = new Demo19();
Demo19 t5 = new Demo19();
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
}
}
class DB2 {
static AtomicInteger i = new AtomicInteger(5);
public void buy() {
System.out.println(i.decrementAndGet());
}
}
// 4
// 2
// 0
// 1
// 3
java多线程学习之原子类
最新推荐文章于 2024-03-25 20:22:10 发布