• 类锁、对象锁、互斥锁与synchronized


    本文总结自: https://blog.csdn.net/luckey_zh/article/details/53815694

    互斥锁: 若对象有互斥锁,则在任一时刻,只能有一个线程访问对象。类锁、对象锁都属于对象监视器,而对象监视器是基于互斥锁的

    对象监视器,详见: https://www.cnblogs.com/yanze/p/9774388.html

    类锁、对象锁层次: java层次

    类锁即锁住了类,对象锁即锁住实例对象

    synchronized使用场景分以下几种:

    1. 一般方法

    对象锁,锁住当前对象

    2. 静态方法

    类锁,锁住此类

    3. synchronized(object)

    锁住object,object可为对象,可为类

    常见: 

    synchronized(this)

    对象锁

    synchronized(*.class)

    类锁

    锁的本质:

    逻辑上来说,锁其实是对象内存堆中头部的一部分数据。当线程获得一个锁,即是在锁内存区域设置一些标志。线程释放锁也是改变这些标记。

  • 相关阅读:
    构造函数+this关键字+super关键字
    封装
    数组+方法
    流程控制语句
    java运算符+引用数据类型
    java的基础安装
    mysql数据库连接
    mysql数据库约束
    mysql数据库
    练习010:按奇偶排序数组
  • 原文地址:https://www.cnblogs.com/yanze/p/9768315.html
Copyright © 2020-2023  润新知