Java 多线程同步:为什么林二线程无法执行?
这段代码中,只有一个水壶,即 'water' 对象。在 'drink()' 方法中使用了 'ReentrantLock' 锁,确保同一时间只有一个线程可以获取水壶并喝水。
当林一线程获取到锁后,进入 'drink()' 方法,并执行完方法后才会释放锁。在此期间,林二线程会一直等待锁的释放,无法获取锁并进入方法执行。
因此,林二线程的执行需要等待林一线程执行完毕,才能获取到锁并执行 'drink()' 方法。
这种现象体现了多线程同步的原理:通过锁机制,保证同一时间只有一个线程可以访问共享资源(水壶),从而避免数据竞争和错误。
原文地址: https://www.cveoy.top/t/topic/ndbd 著作权归作者所有。请勿转载和采集!