码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Synchronized


    涉及面试题:

    1. synchronized常用的使用方法有哪些:

            1)修饰代码块,指定对象加锁,对对象加锁

            2)修饰实例方法,对当前实例对象加锁

            3)修饰静态方法,对当前类的Class字节码对象加锁(所有通过该类new出来的实例对象都要同步,用的是同一个锁)

    2. synchronized锁升级(jdk1.6对synchronized底层做了那些优化)

            1)无锁态 -> 偏向锁 -> 轻量级锁 -> 重量级锁

            偏向锁

                   偏向锁指不存在锁竞争,常常是一个线程多次获得通一个锁。偏向锁不需要重新加解锁。偏向锁适用于基本没有线程竞争锁的同步场景。

            轻量级锁

                    轻量级锁,存在锁竞争情况,偏向锁会升级为轻量级锁,竞争状态下没有抢到锁的线程会自旋而不会阻塞,长时间自旋会造成CPU消耗。适用于少量线程竞争锁对象,且锁的时间不长,追求响应速度的场景。

            重量级锁

                    重量级锁,锁竞争情况严重时,某个达到最大自旋次数的线程,会将轻量级锁升级为重量级锁。重量级锁不会导致CPU空转消耗CPU,但是线程阻塞,响应时间长。适用于多线程竞争锁,且锁持有时间长,追求吞吐量的场景。

    3. 乐观锁与悲观锁区别(synchronized是悲观锁)

            乐观锁

                    乐观锁认为一般不会出现冲突,只会在更新数据的时候才会进行数据监测。

                    乐观锁的实现是CAS(compare and swap,对比替换)机制。

                    乐观锁存在ABA问题,解决方案为引入版本号,每次操作之后让版本号+1,比较的时候版本号和值都比较。

            悲观锁

                    悲观锁:假设最坏的情况,每次拿数据的时候认为别人会修改,所以每次访问都要进行上锁。

           

  • 相关阅读:
    高校部署房产管理系统前要认真做好那些基础工作?
    【WPF】CAD工程图纸转WPF可直接使用的xaml代码技巧
    厌烦了iPhone默认的热点名称?如何更改iPhone上的热点名称
    ​LeetCode解法汇总2605. 从两个数字数组里生成最小数字
    字节跳动 DanceCC 工具链系列之Xcode LLDB耗时监控统计方案
    DDR时序
    FFmpeg入门详解之68:FFmpeg4.3的开发环境搭建
    Java项目:ssm实验室设备管理系统
    堆排序 ← 改编自《啊哈!算法》
    【回溯算法】leetcode 17. 电话号码的字母组合
  • 原文地址:https://blog.csdn.net/weixin_39330443/article/details/134036654
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号