首页 > 其他 > 详细

Synchronized

时间:2021-09-05 20:42:40      阅读:24      评论:0      收藏:0      [点我收藏+]
重量级锁,Javs SE 1.6对synchronized进行的各种优化后,synchronized并不会显得那么重了。
作用:原子性:确认线程互斥的访问同步代码。
           可见性:
           有序性:
在Hotspot JVM中,锁叫做对象监视器:ObjectMonitor;
三种用法
       作用在实例方法中,监视器锁是对象实例。
       静态方法中,监视器锁是对象的Class实例,因为Class数据存储在永久代,因此静态方法锁相当于该类的全局锁。
       某一个对象的实例:监视器锁是括号括起来的对象实例。
synchronized 内置锁 是一种 对象锁(锁的是对象而非引用变量)。作用粒度是对象,可以用来实现对临界资源的同步互斥访问,是可重入的。可重入最大的作用可以避免死锁。
        子类同步方法调用父类同步方法,如果没有可重入性特性,则会发生死锁。
Synchronized是JVM层:
操作系统线程对应关系:1:1的关系。jvm创建一个线程,内核空间也创建一个线程
        JVM:new Thread().start()。
Synchronzied(互斥锁)加锁后,同一时间只有一个线程能得到这个锁。
    优化过程:
    重量级锁:jvm管理的线程和(加锁的时候)交给操作系统来管理,有结果后返回给JVM。
JAVA提供的原子类:AtomicInteger   //轻量级锁,无锁,自旋锁(这三个一回事儿)
     CAS实现自旋锁。while()实现,直到原来值和内存值相同才成功。
    
    

Synchronized

原文:https://www.cnblogs.com/yujiantong/p/15226954.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!