一个不是juc一个是juc情况
class Data2{private int number = 0;Lock lock = new ReentrantLock();Condition condition = lock.newCondition();public void increment() throws Exception{lock.lock();try {while (number != 0){condition.await();}number ++;System.out.println(Thread.currentThread().getName() + "=>" + number);condition.signalAll();}finally {lock.unlock();}}public void decrement() throws Exception{lock.lock();try {while (number == 0){condition.await();}number --;System.out.println(Thread.currentThread().getName() + "=>" + number);condition.signalAll();}finally {lock.unlock();}}
}
@Testpublic void test1(){Data2 data2 = new Data2();new Thread((()->{for (int i = 0; i < 10; i++) {try {data2.increment();} catch (Exception e) {e.printStackTrace();}}}),"A").start();new Thread((()->{for (int i = 0; i < 10; i++) {try {data2.decrement();} catch (Exception e) {e.printStackTrace();}}}),"B").start();}