为什么第一个线程没有调用构造方法赋值,就可以切到第二个线程呢?

来源:13-12 JMM的应用

qq__6238

2020-07-18

老师的解释我都听明白了,但是有个疑问,即使是重排序,为什么第一个线程没有调用构造方法赋值,就可以切到第二个线程呢?那样不是第一个synchronized代码块还没有执行完吗?除非是线程1出现了异常吧?

写回答

1回答

悟空

2020-07-19

不是执行完synchronized才会被切换,执行到一半也会切换线程,只是第二个线程无法进入同一个synchronized代码块

0
1
qq__6238
非常感谢!
2020-07-19
共1条回复

线程八大核心+Java并发原理及企业级并发解决方案

完整的并发知识网络+丰富的工作内容分享+50余道并发高频面试题

2512 学习 · 939 问题

查看课程