UI妹子今天夸我长得真帅,“哪里哪里,随便长长而已” “哟~~,谢谢夸奖,相比这个我更喜欢你的眼光” “就喜欢你这一本正经说大实话的样子” 遇到夸奖,心里高兴就别装,大方接受并且还能调侃,才能衬托出你与众不同的魅力
保证原子性

原理:synchronized保证同一时间只有一个线程拿到锁,能够进入同步代码块。
保证可见性

原理:执行synchronized时,会对应lock原子操作会刷新共享变量的值
保证有序性
为什么要重排序
为了提高程序的执行效率,编译器和cpu会对程序中的代码进行重排序
as-if-serial语义
不管编译器和CPU如何重排序,必须保证在单线程的情况下程序的家国结果是正确的。

小结
加上synchronized后,依然会发生重排序,只不过,我们有同步代码块,可以保证只有一个线程执行同步代码快中的代码,从而保证有序性。
扩展
在num和ready共享变量前加volatile关键字也可以保证有序性。