首页 > 其他分享 >synchronized加锁对象和JVM对锁的优化

synchronized加锁对象和JVM对锁的优化

时间:2023-01-22 16:22:48浏览次数:38  
标签:加锁 synchronized 对锁 对象 线程 轻量级

synchronized加锁对象

对于普通同步方法,锁是调用该方法的对象。
对于静态同步方法,锁是该方法所属类的Class对象。
对于同步代码块,锁是synchronized括号里面的对象。

JVM对锁的优化

偏向锁

如果一个线程获得锁,那么锁就进入偏向模式。当这个线程再次请求锁时,不执行同步操作。

轻量级锁

如果偏向锁失败,采用轻量级锁:对象头部作为指针,指向线程堆栈的内部,判断当前线程是否持有对象锁。如果线程获得轻量级锁,则进入临界区;否则,锁请求膨胀为重量级锁。

自旋锁

当前线程执行几个空循环。

锁消除

逃逸分析即观察某个变量是否会逃出某个作用域,消除不可能竞争共享资源的锁。

标签:加锁,synchronized,对锁,对象,线程,轻量级
From: https://www.cnblogs.com/WJQ2017/p/17064486.html

相关文章

  • 10.关于synchronized的一切,我都写在这里了
    大家好,我是王有志。关注王有志,一起聊技术,聊游戏,从北漂生活谈到国际风云。之前我们已经通过3篇文章由浅到深的分析了synchronized的用法和原理:synchronized的基础:synchr......
  • 【工作随手记】并发之synchronized
    synchronized对于java同学肯定都是耳熟能详的必修课了。但是不管对于新手还是老手都有一些容易搞错的点。这里权做一点记录。锁的是代码还是对象?同步块一般有两种写法。......
  • synchronized详解
    一、synchronized使用1、synchronized的作用synchronized的作用主要有三:(1)、原子性:所谓原子性就是指一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素......
  • 07.synchronized都问啥?
    大家好,我是王有志。关注王有志,一起聊技术,聊游戏,从北漂生活谈到国际风云。最近搞了个抽奖送书的活动,欢迎点击链接参与。如果Java面试有什么是必问的,synchronized必定占据一......
  • Java synchronized
    synchronized是java提供线程间同步的重要机制保证在同一时刻,被修饰的代码块或方法只会有一个线程执行,以达到保证并发安全的效果java内存模型:先通过一个生产者消费者例......
  • BitLocker驱动器加锁和解锁
    应用场景:单位配备给你使用的电脑(Win10系统),偶尔也会有其他人使用。你可以设置某一个磁盘为你的私密数据存储空间,只有你输入密码后才能进入磁盘。即使系统重装、硬盘被拆......
  • 面试官:为什么 wait/notify 必须与 synchronized 一起使用??
    来源:blog.csdn.net/randompeople/article/details/114917087为什么javawait/notify必须与synchronized一起使用这个问题就是书本上没怎么讲解,就是告诉我们这样处理,......
  • Java关键词synchronized解读
    目录1引入Synchronized2Synchronized的使用2.1对象锁2.1.1Synchronized修饰实例方法2.1.2Synchronized修饰代码块2.2类锁2.2.1synchronize修饰静态方法2.2.2synchr......
  • Easy App Locker - 给你的 mac 应用加锁保护你的隐私
    EasyAppLocker可以对Mac上的单个应用进行密码保护。维护Mac上的隐私。像如果你的某个应用存在隐私数据就可以使用该软件将此应用上锁,这样当你的朋友使用你的mac时你......
  • synchronized介绍
    synchronized1、多线程之间容易出现线程安全问题一个数由两个线程计算,一个线程加5000,另一个线程减5000,得出结果不为0staticintcount=0;publicstaticvoidmain(St......