腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
为什么POSIX将
信号量
标准化为系统调用,而将
互斥
和条件变量留给P线程(用户级别)
、
、
、
、
为什么POSIX将对
信号量
的支持标准化为syscall,而将条件变量和
互斥
对象留给线程库呢?我也不知道。猜测性能是不将
互斥
实现为syscall的考虑因素。(原子硬件指令是无特权的,因此在用户级别实现它们是可能的。尽管
Linux
提供了futex,但它实际上正试图将自旋锁优化为两阶段锁,以实现睡眠锁)。
信号量
的原因是
信号量
浏览 4
提问于2020-03-03
得票数 1
回答已采纳
1
回答
C
Linux
编程中的
信号量
、
、
我将接管一些在
Linux
(Centos)中运行的C代码,并广泛使用
信号量
。代码的编写方式:这个程序启动了一组使用
互斥
和
信号量
的进程。这个程序还启动了一组进程,这些进程使用
互斥
量和
信号量
。使用以下命令调用<
浏览 4
提问于2014-06-26
得票数 1
回答已采纳
1
回答
二进制
信号量
和
互斥
量有什么区别?
、
、
我想知道二元
信号量
和
互斥
量之间的区别?这些是一样的吗?二进制
信号量
的值为1和0,具有
互斥
锁和解锁。 我真的对这些术语感到困惑。我指的是应用程序级编程透视图。在一次采访中,我被问及这个问题,并解释说
信号量
是用来发送信号的,
互斥
是用来锁定的。请用简单的例子来解释。我在googled上搜索了一下,但是知道除了上面的区别之外,
信号量
锁可以被其他线程解锁,而
互斥
锁必须由锁它的线程解锁。
浏览 3
提问于2015-03-20
得票数 2
1
回答
信号量
与条件变量.抽象级别
、
、
、
当我搜索如何在C++11中使用
信号量
时,我看到人们经常建议我用std::mutex和std::condition_variable (例如)来制作
信号量
。这使我认为
信号量
是一个比
互斥
变量和条件变量更高层次的抽象。 但是,在我学习了操作系统类之后,我现在知道在内核中,
信号量
通常是最低的抽象级别。
信号量
是通过禁用中断来实现的,锁本质上是值为1的
信号量
,而条件变量则是在不使用
信号量
或锁的情况下从底层实现的。因此,与锁或条件变量相比,
信号量
(
浏览 6
提问于2016-12-19
得票数 0
回答已采纳
1
回答
linux
上的同步,c/c++
、
、
我将在
Linux
上同步两个不同的进程。两个进程都想访问一个可以同时由一个进程使用的设备。到目前为止,我一直使用命名
信号量
进行同步,并且运行良好,直到有人杀死了当前在设备上运行的进程。在这种情况下,
信号量
不会被释放,这会导致尝试获取
信号量
/访问设备的所有进程挂起。提前感谢!托雷诺
浏览 0
提问于2015-02-04
得票数 0
2
回答
完成变量和
信号量
之间的区别
、
、
在
linux
内核中,
信号量
用于为数据的关键部分提供
互斥
,完成变量用于在等待事件的两个线程之间进行同步。为什么不使用
信号量
进行这样的同步呢?使用完成变量比使用
信号量
有什么优势吗?
浏览 1
提问于2011-01-22
得票数 9
回答已采纳
1
回答
一个线程获取一个
信号量
,而另一个线程释放它的有效用例是什么?
、
Linux
信号量
和
互斥
锁之间的区别在于
互斥
锁可以由锁定它的线程解锁。但是,一个线程锁定和另一个线程解锁的用例是什么呢?
浏览 2
提问于2017-06-05
得票数 0
1
回答
在
LINUX
系统中,
互斥
和
信号量
会“繁忙等待”吗?
、
、
、
、
最近,我了解到
linux
内核中的suspended/blocked睡眠系统调用会将当前调用线程挂起到一个状态,这意味着在上述时间过去之前,它们不会使用。-完全理解。现在是
互斥
和信号,acquire() {S++;P.S:这些代码片段摘自亚伯拉罕·西尔施塔茨的“操作系统概念-第9版”我知道繁忙等待并不是解决同步问题的有效方法,但是从上面提到的代码片段中,我对使用
互斥
和
信号量
是否会导致繁忙等待(尽管
互斥
和
信号量<
浏览 2
提问于2017-10-07
得票数 2
回答已采纳
2
回答
控制器和工人.启动/停止信号
、
信号量
(数N)、
互斥
量、信号(在执行分叉程序之后)?我听说
信号量
/
互斥
信号很慢。我不确定信号,但我不知道发送这么多信号是不是一个好主意(N工人*1或2个信号/0.2秒,其中N是cpu核心)。抱歉,是关于
linux
的。
浏览 2
提问于2015-01-15
得票数 0
回答已采纳
1
回答
如何在
linux
内核中添加自定义
信号量
?
基本上,我希望在
linux
内核中实现自己的
信号量
,并能够在用户程序中使用它。有没有办法让使用用我的代码编译的内核的
linux
能够简单地通过包含一个头文件来使用我的
信号量
?当涉及到
linux
内核时,我不是专业人士,所以如果我犯了任何明显的错误,请随时指出它们out.Thanks。我使用的内核版本是2.6.32。
浏览 3
提问于2014-12-03
得票数 2
1
回答
在内核开发中,有类似于
互斥
对象的down_interruptible()函数吗?
、
、
、
、
在“
Linux
设备驱动程序第三版”一书中,
互斥
通过init_MUTEX(sem)通过
信号量
实现。然而,较新的内核,如内核3.2.X,已经删除了这个函数,并添加了
互斥
对象的支持。但当我遇到密码时: return -ERESTARTSYS; 我不能确定这个
互斥
方法是否有对应的。换句话说,我如何才能中断对特定
互斥
对象的等待?
浏览 5
提问于2015-01-15
得票数 1
回答已采纳
5
回答
在
Linux
/UNIX上是否可以在多进程情况下使用
互斥
?
、
、
、
、
在
Linux
/UNIX上是否可以在多进程情况下使用
互斥
?
互斥
仅用于多线程。对吧?谢谢
浏览 3
提问于2012-02-22
得票数 35
回答已采纳
1
回答
互斥
锁总是作为自旋等待实现吗?
、
、
、
互斥
锁总是作为自旋等待实现吗?
互斥
锁能否实现为块等待?(操作系统概念第5.4节只提到通过spin等待实现。见下文。)(作为比较,
信号量
的等待可以通过在循环中繁忙地旋转或被阻塞来实现。见操作系统概念9ed第5.5和5.6节和是否仍在忙于等待
信号量
的进程阻塞实现?) 如果
互斥
锁可以实现为块等待,那么
互斥
锁是否与二进制
信号量
相同?(Stalling的OS书中说
互斥
锁和二进制
信号量
是否必须是锁定
互斥
锁的进程(将值设置为零)。
浏览 0
提问于2020-11-09
得票数 0
1
回答
什么时候使用maxCount为1的
信号量
才有意义?
、
、
根据我
所
读到的,
信号量
被设计成允许多个线程同时访问一个资源池。我还发现
互斥
锁一次只允许一个线程访问一个资源。我目前正在使用一些使用SemaphoreSlim的代码,以确保只有一个线程可以访问资源。创建一个
信号量
,一次只有一个线程可以访问资源池,这样做有意义吗?在这种情况下,为什么不使用Mutex?或者(根据我
所
读到的) C#中类似的构造-- lock或Monitor?听起来
互斥
量/锁/监视器更简单,更少潜在的误导。
浏览 2
提问于2018-01-29
得票数 0
1
回答
读写器的
信号量
解决方案:更新读取器计数和在读/写二进制
信号量
上等待或发送信号之间的顺序?
、
、
、
、
从操作系统概念出发
信号量
rw
互斥
= 1;
信号量
互斥
= 1;int read_count = 0;do { wait(rw_mutex)执行{等待(
互斥
);读取count++;如果(read_count == 1)等待(rw
互斥
);信号(
互斥
);。。。执行/*读取*/。。。
信号量
mutex和rw_mutex初始化为1;读取计数初始化为0。
信号量
rw_
浏览 3
提问于2017-10-23
得票数 0
3
回答
用C/C++命名进程内部
互斥
锁?
、
、
、
、
是否有使用C/C++ (在Unix/
Linux
中)实现命名进程内部
互斥
锁的方法?如果您使用内存映射文件或共享内存,您将获得文件系统持久性... 有什么想法吗?
浏览 0
提问于2011-09-24
得票数 0
2
回答
关于同步对象[
Linux
os]的一些问题
、
与semaphore""Semaphore相比,"Mutex“轻量级且速度快,比条件变量使用更多的内存”“ 我在某个地方读到
信号量
是基于系统调用..and的,它更多地处理调度程序,所以它比
互斥
锁慢。
浏览 4
提问于2011-01-24
得票数 1
回答已采纳
1
回答
在CPU时间上等待
互斥
量与等待
信号量
、
、
、
我想知道,在CPU使用方面,等待锁定的
互斥
量和等待锁定的
信号量
是否有什么区别。根据手册页,在这两种情况下线程块,这意味着它被传输到一个等待队列,因此不消耗CPU时间。相反,我确实看到了一些地方和答案,它们声称等待
互斥
物会导致繁忙的等待,这意味着消耗CPU时间却徒劳无功。 如果你能解释一下是否有区别,我将不胜感激。编辑:我的问题被认为可能是的重复,然而,正如我注意到的,我在这个论坛的其他地方看到了相反的答案,声称等待
互斥
对象是繁忙的等待。
浏览 1
提问于2018-05-11
得票数 1
回答已采纳
1
回答
使用Mutex在Windows上与线程连接IPC
、
、
我在Windows上用
互斥
实现了IPC,但是当我与另一个线程建立连接时,出现了问题;当线程终止时,连接就关闭了。当进程结束时,
互斥
被释放是很自然的。然而,在线程的情况下,我需要保持
互斥
锁的方式来保持连接,即使线程终止了,如果进程是活动的。
信号量
可以在
Linux
上替代,但是在Windows上,不可能使用
信号量
,因为它不能感觉到异常的断开。 有人知道吗?
浏览 0
提问于2012-05-09
得票数 1
回答已采纳
5
回答
信号量
和
互斥
锁概念
、
、
我读到
信号量
和
互斥
之间的区别之一是,在
互斥
的情况下,进程/线程(曾经拥有锁)只能释放锁。但是在
信号量
的情况下,任何其他进程都可以释放
信号量
。当一个没有
信号量
的进程可以释放
信号量
时,我的怀疑就出现了。有一个
信号量
有什么用? 假设我有两个进程A和B。假设进程A有一个
信号量
,正在执行一些关键任务。现在让我们假设进程B发送一个信号来释放
信号量
。在这种情况下,进程A是否会释放
信号量
,即使它正在执行一
浏览 1
提问于2015-10-15
得票数 0
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
详解Linux多线程中的互斥锁、读写锁、自旋锁、条件变量、信号量
Linux系统编程 信号量
Linux系统编程 互斥量mutex
互斥与同步
Linux驱动必学知识点-内核互斥锁
热门
标签
更多标签
云服务器
ICP备案
腾讯会议
云直播
对象存储
活动推荐
运营活动
广告
关闭
领券