Object类中的 notifyAll()方法唤醒后,线程怎么执行

在学习线程协作时,大家都会用到notify()或者notifyAll()方法,最初我对于wait()和notifyAll()方法的印象仅仅是对象锁调用wait方法,使线程进入阻塞状态,等待对象锁执行notify方法将其唤醒。继续执行

但最近学习一位大牛的视频,无意间发现一个线程执行的顺序好像跟我想象的不太一样。

代码如下:

1、计数器线程类:


2、唤醒线程


3、测试类



4、控制台输出:


分析:如果只是没有唤醒线程,则两个线程只会打印上边两行代码,并且都会进入阻塞状态

执行了notifyAll方法以后,输出了i的值为2;

让我产生了一些疑问,i明明是一个局部变量,作用域只是到方法结束为止,

所以,我判断,在计数器线程被唤醒之后,是继续执行run()方法,而不是再次重新进入run方法执行。


欢迎各位大牛路过指点                                                                                                                      ——一个小白的努力奋斗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值