躺平程序猿 2021-11-15 19:48 采纳率: 0%
浏览 29

咨询个有关自旋锁和互斥锁的问题?

咨询个有关自旋锁和互斥锁的问题:
自旋锁获取不到锁的时候线程会一直自旋消耗掉当前线程持有的CPU时间片;互斥锁获取不到锁的时候线程会主动交出CPU时间片,并添加到当前锁的等待队列里,等持有锁的线程临界区代码执行完毕后被唤醒。自旋锁相对于互斥锁来说白白消耗了CPU的时间片而且会导致"优先级反转"问题,为什么还将自旋锁定义为轻量级锁呢?还有个问题互斥锁进行线程唤醒时是唤醒等待队列中全部线程还是唤醒第一个线程?

  • 写回答

2条回答 默认 最新

  • 七号公园的忧伤 Java领域新星创作者 2021-11-15 20:18
    关注

    1.自旋锁的使用,是因为大部分情况下,等待时间是很少的,为了避免系统的cpu调度造成浪费,直接在用户层面代码就完成了。如果占用锁的时间过长,就得不偿失了。
    2.唤醒那个得看什么语言吧

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 11月15日

悬赏问题

  • ¥20 Html备忘录页面制作
  • ¥15 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?
  • ¥20 数学建模来解决我这个问题
  • ¥15 计算机网络ip分片偏移量计算头部是-20还是-40呀
  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败