PDF 课件和源代码下载地址:
https://gitee.com/geektime-geekbang/LetsJava
作者回复: 几率问题哈,你把这个100次循环个1000次,大概率会出问题。
作者回复: 栈上的数据是线程私有的,但是堆上的数据就是线程之间共享的。 哪些数据是在栈上的呢?局部变量,参数。 哪些数据是在堆上的呢?对象。 当多个引用(比如说方法里的局部变量)指向同一个对象(堆里的数据)的时候,多个thread就就操作同一份数据了。
作者回复: 线程并发安全最好的解决方案是避免线程并发有共享数据,造成安全问题
作者回复: 所以这一节的名字里带个混乱。 线程执行代码,最终的结果就是在折腾数据。如果多个线程折腾同一个数据,那就得有保护,保护就是后面我们会讲到的线程同步控制。如果没有保护,每个线程无视别的线程对数据的修改,那就会引起混乱。