Java中易失性和同步性的区别
我想知道声明变量为volatile
并始终访问synchronized(this)
在爪哇的街区?
根据这篇文章http:/www.javamex.com/tutorials/Synchroning_挥发le.shtml有很多要说的,有许多不同之处,但也有一些相似之处。
我对这段信息特别感兴趣:
...
- 对易失性变量的访问从来没有阻止的潜力:我们只进行简单的读或写,所以与同步块不同的是,我们永远不会持有任何锁;
- 因为访问易失变量从来不持有锁,所以它不适合于我们想要访问的情况。
读-更新-写
作为原子操作(除非我们准备“错过更新”);
他们说的是什么意思读-更新-写?不是写也是更新,还是它们仅仅意味着更新书写是否取决于阅读?
最重要的是,什么时候声明变量更合适?volatile
而不是通过synchronized
街区?使用它是个好主意吗?volatile
对于依赖于输入的变量?例如,有一个名为render
它是通过呈现循环读取并由按键事件设置的吗?