0.上一章是关于使用同步来防止多个线程同一时间访问同一数据。这一章,详细讲解共享和发布对象的技术。
1.可见性。当一个进程修改了对象的状态后,其他进程能够真正看到改变。
2.重排序。不能保证cpu操作一定按照程序写定的顺序执行,即使重拍会产生对于其他线程来说,会产生明显的影响。
在没有同步的情况下,编译器、处理器、运行时安排执行的顺序可能完全出乎意料。或者,在没有同步的情况下,尝试推断那些必然发生在内存中的事,你总是会推断错误。
这时,你要记住,只要数据需要被跨线程共享,那么就需要恰当的同步。
3.