这为什么会死锁?
答:直接原因是将同步代码块套在了while循环语句的外面,出现了上面这样的两个线程总共执行三次后死锁,但是为什么会执行三次后死锁仍不清楚,将synchronized放在while循环里面能够完成输出,但是依旧死锁,如下,可以看到红色正方形依旧亮起,表示仍然在运行
不应该啊照理说,线程1进入while循环是num=100,在同步代码中唤醒线程2后打印num,再递增num,此时num=101,然后线程1执行wait进入等待状态,线程2被唤醒后进入就绪状态,拿到时间片执行run时应该num=101进不去while语句