第三章 对象的共享
3.1可见性
可见性:在我看来,可见性的的意思是操作可见性;就是共享的可变的对象的所有操作后的结果必须通知所有要操作这个对象的线程。
3.2失效数据
失效数据:当这个数据不存在可见性的时候,这个数据就可能失效;通俗的说:假设num=8,同时被两个线程操作,线程一,将num+1,得到num=9;但是此时num没有同步线程二就开始操作num,此时线程二获取到的num的值就是8,那此时的num就是失效数据。
3.3Volatile变量
Volatile变量:首先volatile变量是一种弱同步机制;为什么说它是弱同步机制,因为在访问volatile变量时不会执行加锁操作,因此也不会使执行线程阻塞。它是一种比sychronized还要弱的同步机制
3.4发布(Publish)和溢出(Escape)
发布一个对象是指使该对象能在当前作用域之外的代码里面使用该对象。 当某个不应该被发布的对象被发布了就叫溢出