关于多个线程同时调用shouldGo方法的问题
来源:8-7 notify和notifyall的区别
qq_慕粉1408169
2019-08-02
老师您好,三个传入waitTask的线程会同时调用synchronized方法shouldGo,但其实三个线程中都是同一个对象test在调用shouldGo,应该不能同时执行吧?为什么会同时执行呢
写回答
1回答
-
翔仔
2019-08-03
同学好,这三个线程是会并发执行,但是在执行shouldGo方法里会串行执行,只是由于go变量默认是false,因此都会依次调用wait方法挂起,直到调用go方法将go置为true,然后再唤醒其中一个或者所有线程重新执行,再由其中一个真正获得执行的线程重新执行并将go置为false
00
相似问题