zoukankan      html  css  js  c++  java
  • Java中类锁和对象锁

    类锁

    类锁 锁的其实是类的Class对象,类锁的代码写法是对类方法加synchronize,或者 synchronize(xx.class){}

    对象锁

    对象锁 锁的是类的实例对象,对象锁的形式有 对类的实例方法加修饰词 synchronize关键字或者 synchronize(instance){}

    区别

    如果实例a中既有类锁,又有对象锁,那么当类锁被一个线程持有后,其他的线程是仍然可以获得对象锁的,反之亦然,也就是说,类锁和对象锁其实不会互斥,因为他们本来就是两个不同的锁,举个例子来说,我一个门上两把锁,一个人去开上面那把锁,那另一个人去开另外一把锁,完全不冲突,各自开各自的。

    对象锁

    多个线程竞争一个对象锁资源时,线程间互斥,其实同一个类的不同实例的对象锁之间,也没有任何关系,不存在互斥的问题。也就是说,归根结底的看待锁的问题,是要看一组线程是不是在竞争同一个锁资源(对象),分清不同的锁

  • 相关阅读:
    python base64加密文本内容(1)
    python 翻译爬虫
    json为txt文本加密
    python json
    repr()函数
    linux 基本命令
    测试管理工具--禅道
    测试基础理论
    测试用例--场景法
    测试用例--测试大纲(提纲)法
  • 原文地址:https://www.cnblogs.com/heartlake/p/7808872.html
Copyright © 2011-2022 走看看