volatile、synchronized与锁

来源:互联网 发布:linux 定时 编辑:程序博客网 时间:2024/05/29 02:32

1、volatile保证共享变量的可见性,比Synchronized的使用和执行成本更低,因为它不会引起线程上下文的切换和调度;

2、一个字段被声明城volatile类型,java的线程内存模型确保所有线程看到这个变量的值是一致的;

3、java中的每一个对象都可以作为锁,任何对象都有一个monitor与之关联,当monitor被持有后,其对象处于锁定状态;

4、synchronized用的锁存储在java的对象头里;

5、javase 6 为了减少获得锁和释放锁带来的性能消耗,引入了偏向锁和轻量级锁,以及锁的存储结构及升级过程

原创粉丝点击