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

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

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

  • 写回答

2条回答 默认 最新

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

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

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 11月15日

悬赏问题

  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥35 跳过我的世界插件ip验证
  • ¥15 抖音看过的视频,缓存在哪个文件
  • ¥15 自定义损失函数报输入参数的数目不足
  • ¥15 如果我想学习C大家有是的的资料吗
  • ¥15 根据文件名称对文件进行排序
  • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
  • ¥15 有人会用py或者r画这种图吗