【内容】
【补充】
Thread.yeild:让出cpu使用权,重新平等竞争
Thread.activeCount()
【内容】
-
问题引入
public static int 经过20线程的1000次count++ 即时判定Thread.aliveCount()>0yeild res<20000,如果改成atomicInteger类型,++变成count.incrementAndGet(), 最后生成的是20000 -
Atomic的特点
①多线程环境下,无锁的进行原子操作。
②不能绝对保证线程不被阻塞。(因不同CPU的原子指令不同,可能需要某种形式的内部锁)
内部实现类 | 特点(除了原子方式更新,不能当做原有类的替代品之外) |
---|---|
AtomicBoolean | |
AtomicInteger | 类继承自Number,允许被以数值为基础的 classes文件 当做工具类去使用 |
AtomicLong | 类继承自Number,允许被以数值为基础的 classes文件 当做工具类去使用 |
Atomicrefference | 原子方式更新引用 |