
该问题仅存在于线程转储中。实际上,在任何时间点,锁都仅由一个线程持有。但是,线程转储显示两个具有相同锁的不同线程,因为它不是原子的。
可以使用以下程序轻松重现该行为:
public class Test { public static void main(String[] args) { Runnable runnable = new Runnable() { public void run() { for (;;) { synchronized (this) { } } } }; new Thread(runnable).start(); new Thread(runnable).start(); }}欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)