Java 并发编程中,有几个原则:
1原子性,要么都执行,要么都不执行。
2可见性,其它线程修改某一变量后,其它线程可以立即查看到变化后的值。
3顺序性,执行后的结果是确定的。
volatile 关键字 的变量,保证变量的可见性,不能保证原子性。
synchronized 关键字,保证原子性,可以用在四个方面:
1.instance level
2.public method :instacne level
3.static method :class level
4.some object : decide by how you use lockobject
synchronized 可以参考: