腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
互斥
锁
会在任何时候阻塞所有
线程
吗?
、
、
在
Linux
中,假设我有100个
线程
的代码。这些
线程
中有5个竞争由
互斥
锁
保护的共享资源。我知道当临界区实际运行时,如果5个
线程
试图获得
锁
,则只有5个
线程
会停止执行,而其他95个
线程
将正常运行。我的问题是,是否存在其他95个
线程
的执行将暂停或受影响的时间点,即
互斥
量/
内核
/什么决定哪些
线程
在
互斥
量上被阻塞,哪个
线程</e
浏览 5
提问于2013-03-29
得票数 1
回答已采纳
4
回答
POSIX
线程
: pthreads_cond_wait()和其他函数是系统调用的吗?
、
、
POSIX标准基于
互斥
锁
和条件变量等概念定义了几个用于
线程
同步的例程。我知道它们是通过"pthread.h“包含的,但它们最终会导致系统调用,从而在操作系统
内核
中实现吗?
浏览 1
提问于2009-10-17
得票数 4
2
回答
互斥
访问和系统调用
、
、
、
、
我知道,在
Linux
中,
互斥
被实现为下面的futexes,futex使用比较和交换机制。通常,为了获取
锁
,用户空间
线程
不需要进行系统调用,因为
锁
是在用户空间中解析的。现在,我的问题是,当存在很高的争用和许多
线程
试图同时锁定
互斥
时,会发生什么。那么,是否发生了系统调用,以便
内核
决定授予
互斥
对象哪个
线程
?尤其是当
线程
优先级不同的时候?我自己也这么认为。
浏览 3
提问于2011-08-15
得票数 11
回答已采纳
2
回答
glibc/NPTL/
Linux
健壮
互斥
中的竞争条件?
、
、
在2010年关于问题的评论中,jilles声称: glibc强大的
互斥
量之所以如此之快,是因为glibc采用了危险的捷径。当
内核
将
互斥
锁
标记为“将导致EOWNERDEAD”时,不能保证
互斥
锁
仍然存在。如果
互斥
锁
被销毁,内存被替换为内存映射文件,该文件恰好在正确的位置包含最后一个拥有
线程
的ID,并且最后一个拥有
线程
在写入
锁
字之后(但在从拥有
互斥
锁
的列表中完全删除<
浏览 8
提问于2012-08-14
得票数 16
回答已采纳
1
回答
在共享库中使用哪种类型的
锁
机制,即由posix
线程
访问
、
、
我有一个使用POSIX
线程
的应用程序,即使用一个静态库,它有一些全局变量,而我在libray中没有任何
线程
实现。有人告诉我,如果你在那个文件中使用pthread,那么你应该使用pthread_mutex,否则就是简单的
互斥
。 因为库是无
线程
的,所以在库中使用哪个
锁
(特别是
互斥
)来保护全局变量。我尝试过
linux
/kernel/mutex.h,显然不适合在用户空间使用
内核
的对象,编译器也有警告。那么我从哪里得到这个简单的
互斥<
浏览 1
提问于2013-06-24
得票数 0
2
回答
如何在
内核
中的
互斥
锁
解锁期间检查所有权?
、
、
我试图理解
Linux
内核
中
互斥
实现的内部机制。在我看来,
互斥
实现最基本的问题之一是 {} 那么,它如何检查调用解锁函数的
线程</
浏览 1
提问于2015-08-18
得票数 1
1
回答
等待
互斥
的
线程
是如何恢复运行的?
、
、
、
、
其背景如下:
线程
会立即恢复运行吗?或者
内核
仍然会等待正在运行的
线程
消耗它的时间片并正常调度等待的
线程
? Q2)如果
互斥
锁
不是永远解锁的呢?
内核
如何决定让
线程
等待?
浏览 2
提问于2017-02-21
得票数 0
1
回答
确保醒来后的CPU时间-
linux
调度程序
、
、
我在
linux
内核
中的驱动程序上下文中运行--这个驱动程序将值写入寄存器--这个操作需要一些时间(~5毫秒)。同样的问题也适用于
互斥
对象--比如我阻塞了
互斥
对象(并触发了重新调度)--当
互斥
锁
被释放时,我如何才能确保立即恢复CPU?编辑:我将重新表达关于
互斥
的问题,因为它有点复杂:我有一个
互斥
对象,它由重要的
线程
使用(因为超时限制很
浏览 4
提问于2013-08-14
得票数 4
回答已采纳
1
回答
Linux
内核
:立即去调度的成本
、
、
在中,我了解了一种新型的
linux
互斥
体,即adaptive_np
互斥
: 其中提到“立即脱产的费用”。这要多少钱?(就cpu刻度而言;TLB、TSS、smth重载)
内核
浏览 4
提问于2010-02-15
得票数 4
2
回答
互斥
锁
的获取和释放顺序是什么?
、
、
我特别指的是在
Linux
内核
代码中。所以我的问题是:此时此刻,会发生什么?
线程
1是否会继续执行,因为它的计划时间片没有用完?或者
线程
2会立即获取
锁
浏览 2
提问于2012-10-08
得票数 2
回答已采纳
1
回答
互斥
锁
是否使等待
线程
在POSIX API中休眠?
、
、
、
、
我们可以在POSIX API中使用
互斥
锁
,如下所示:pthread_mutex_lock(&mutex);/* release the mutex lock */POSIX API是否让等待
线程
进入休眠状态?
浏览 1
提问于2020-02-02
得票数 1
回答已采纳
2
回答
什么时候在
linux
内核
中使用
内核
线程
与工作队列
、
有许多方法可以在
linux
内核
中调度工作:计时器、微
线程
、工作队列和
内核
线程
。什么时候使用一种与另一种有什么指导原则?有一些显而易见的因素:计时器函数和微
线程
不能休眠,因此它们不能等待
互斥
锁
、条件变量等。哪些是首选的机制?
浏览 0
提问于2010-01-27
得票数 34
回答已采纳
1
回答
为什么POSIX将信号量标准化为系统调用,而将
互斥
和条件变量留给P
线程
(用户级别)
、
、
、
、
为什么POSIX将对信号量的支持标准化为syscall,而将条件变量和
互斥
对象留给
线程
库呢?我也不知道。猜测性能是不将
互斥
实现为syscall的考虑因素。(原子硬件指令是无特权的,因此在用户级别实现它们是可能的。尽管
Linux
提供了futex,但它实际上正试图将自旋
锁
优化为两阶段
锁
,以实现睡眠
锁
)。信号量的原
浏览 4
提问于2020-03-03
得票数 1
回答已采纳
2
回答
如何在
linux
中使用自旋
锁
?
、
、
、
我是一名计算机科学专业的学生,我有一个任务要求我使用自旋
锁
锁定一个
线程
,并在它的关键部分完成后解锁它。困难是我搜索了很多次,但没有找到任何有用的信息。例如,我试图包括像#include <
linux
/spinlock.h>这样的标题,但是当我使用gcc编译这个c程序时,它说找不到这样的头。那么,我应该包括哪些标头,需要调用哪些函数才能使用自旋
锁
?
浏览 4
提问于2016-11-26
得票数 2
3
回答
Linux
内核
互斥
锁
、
、
、
我正在读"
Linux
设备驱动程序第三版“,关于并发和竞争条件的章节。有一个我不完全理解的例子;他们谈论的是
内核
编程中的一个常见模式,当一个人需要在当前
线程
之外启动活动(例如,新的
内核
线程
或用户进程、请求现有进程或基于硬件的操作)时,等待该活动完成。我不明白为什么我们不能这样做:down(&sem);为什么需要在锁定状态下创建
互斥
锁
,然后在任务启
浏览 6
提问于2011-01-21
得票数 6
2
回答
在Windows上,进程中的
互斥
锁在哪些情况下比CS更好?
、
、
、
我认为临界区对象比
互斥
锁
更适合于一个进程内的
线程
之间的同步。这是因为CS对象在用户模式下工作,而
互斥
对象在
内核
模式下工作。所以CS对象比
互斥
对象更轻。所以,我真的很好奇,在什么情况下,进程中的
互斥
锁
比CS更好?
浏览 14
提问于2021-03-08
得票数 0
1
回答
抢占、pthread_spin_lock和原子内建
、
、
、
、
根据这个问题,通过使用pthread_spin_lock锁定关键部分是危险的,因为
线程
可能会被调度程序中断,而在该资源上内容的其他
线程
可能会继续旋转。假设我决定从pthread_spin_lock切换到通过原子内建+ compare_and_swap成语实现的
锁
:这件事会改善还是会受到这个问题的影响?由于使用pthread似乎没有什么可禁用抢占的功能,如果我使用通过atomics实现的
锁
或者任何我可以查看的东西,我能做些什么吗? 我有兴趣锁定一个小的关键区域。
浏览 0
提问于2014-03-13
得票数 2
回答已采纳
1
回答
syscall()调用tkill()
、
、
、
Hello我指的是链接- 。但是我不知道是否应该在调用之前执行特定的检查(比如状态检查或
锁
互斥
等等)。 谢谢桑迪普
浏览 0
提问于2012-01-05
得票数 0
回答已采纳
1
回答
如何检查pthread_mutex是否基于健壮的futex
、
、
、
我试图在
Linux
中使用基于鲁棒futex的
线程
互斥
锁
,因为我需要快速和健壮(恢复“死”
锁
)。如何检查任何
Linux
系统上的
线程
互斥
库是否基于健壮的futex? 谢谢!
浏览 6
提问于2013-07-02
得票数 1
3
回答
GDB可以显示每个
线程
持有的pthread
互斥
锁
列表吗?
、
、
、
大约有10个
线程
都被阻塞了,我想知道哪些
线程
持有哪些
锁
。这在使用SOS.dll的WinDbg中是可能的;在GDB中这是可能的吗?
浏览 2
提问于2010-10-21
得票数 5
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
详解Linux多线程中的互斥锁、读写锁、自旋锁、条件变量、信号量
线程互斥锁Lock与全局解释器锁GIL
【精通内核】Linux内核rcu(顺序)锁实现原理与源码解析
自旋对于synchronized关键字的底层意义
互斥锁、自旋锁、读写锁……理清它们的区别和应用
热门
标签
更多标签
云服务器
ICP备案
对象存储
即时通信 IM
实时音视频
活动推荐
运营活动
广告
关闭
领券