在最后老师解释Runnable接口产生的结果时,剩余3张票时,线程1还没有打印,资源就被线程3占去,等抢回资源的时候才把那句话打印出来,我的问题是,等线程1把资源抢回来,成员变量ticketsCont的值不就被修改了吗,为什么还会打印输出剩余3张?如图:
窗口一已经只差打印了,但是拿不到System.out的资源,其实是3和0还有各种可能都是可能存在的,因为这是线程不安全的。
这个应该就是内存模型的东西了,当执行--时,让出CPU资源会记录内存快照?
因为其实字符串在之前就已经拼接好了,只是当一号线程重新拿到cpu资源时才打印出来