使用AtomicInteger,CAS自旋的方式实现
public static void main(String[] args) throws Exception {
AtomicInteger atomicInteger = new AtomicInteger(1);
new Thread(() -> {
while (true) {
while (atomicInteger.get() % 3 == 1) {
System.out.println(Thread.currentThread().getName() + ":" + atomicInteger.get());
atomicInteger.incrementAndGet();
}
if (atomicInteger.get() >= 100) {
break;
}
Thread.yield();
}
}).start();
new Thread(() -> {
while (true) {
while (atomicInteger.get() % 3 == 2) {
System.out.println(Thread.currentThread().getName() + ":" + atomicInteger.get());
atomicInteger.incrementAndGet();
}