这段代码中为什么只有一个线程执行package comxsddemo1;import javautilconcurrentlocksLock;import javautilconcurrentlocksReentrantLock; author :谢少迪 description: date :Created in 2023-04-07 2113 public class test02
这段代码中只有一个线程执行是因为在drink()方法中使用了Lock锁,通过lock.lock()和lock.unlock()方法对num进行了加锁和解锁操作。当一个线程在执行drink()方法时,首先会尝试获取锁,如果获取成功则执行代码块中的内容,否则会一直等待直到获取锁为止。因此,在这段代码中,当一个线程获取到Lock锁时,另一个线程就无法获取锁,只能等待获取锁的线程释放锁后才能执行drink()方法。因此,只有一个线程执行。
原文地址: https://www.cveoy.top/t/topic/bK0K 著作权归作者所有。请勿转载和采集!