腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
8
回答
递归锁定(Mutex)与非递归锁定(Mutex)
、
、
、
、
POSIX允许
互斥
锁
是递归的。这意味着同一
线程
可以锁定同一
互斥
锁
两次,而不会死锁。当然,它还需要解锁两次,否则其他
线程
都无法获得
互斥
锁
。并不是所有支持pthread的系统都支持递归
互斥
锁
,但如果它们想成为的话。 其他API(更高级的API)通常也提供
互斥
锁
,通常称为
锁
。一些系统/
语言
(例如Cocoa Objective-
C</e
浏览 8
提问于2008-10-09
得票数 195
回答已采纳
1
回答
在接收到来自cond变量的信号后,我们需要解锁
互斥
锁
吗?
、
、
、
我用
C
语言
制作了一个带有
互斥
变量和条件变量的教育应用程序。while (!== 0)) 你能解释一下吗,当信号使
互斥
锁
被锁定时,当信号使
互斥
锁
被锁定时,为什么在“同时”状态之后(以及从第二个
线程
接收信号)我们需要解锁
互斥
浏览 1
提问于2018-06-20
得票数 0
回答已采纳
2
回答
C
在幕后用
互斥
锁
处理STDIN吗?
、
、
、
、
Rust标准库使用
互斥
体保护stdin。(如果没有
互斥
锁
,两个
线程
试图同时从stdin读取将导致未定义的行为。
C
有同样的问题,并以同样的方式解决:所有
C
标准输入和输出函数都在幕后获得一个
锁
。唯一的区别是,在Rust中,
锁
是API的一部分。) 如果
C
中的两个
线程
使用stdio.h,那么在后台是否有“
互斥
”来处理文件句柄上的争论?我一直认为这是你必须在
C
语言
中明
浏览 3
提问于2021-08-01
得票数 1
1
回答
如何在多
线程
进程中锁定矩阵单元
、
假设我有'n‘个
线程
数。所有这些
线程
都在访问相同的矩阵,并且它们正在进行一些操作。当一个
线程
完成它的工作(这个工作在2-D数组中的相邻位置)时,我要么锁定整个矩阵,完成它的工作,然后解锁它,让其他
线程
也完成它们的工作。在本例中,我只使用了一个
互斥
锁
。它可以工作,但我不认为我在这种方法中受益于整个多
线程
支持。 在第二种方法中,我不知道如何实现8个相邻位置锁定或锁定
线程
想要去的目标位置。我是否应该使用多个
互斥
量,比如整个网格的<
浏览 0
提问于2018-04-22
得票数 1
1
回答
为什么使用Condvar等待和通知而不是死锁?
、
、
*started {} 如果我正确理解了这一点,那么派生
线程
(#1)中的核心可能会在主
线程
锁定
互斥
对象(#2)之后运行但是在这种情况下,主
线程
永远不会解锁它,因为生成的
线程
无法锁定它并更改值,因此循环将永远运行.或者,是因为某种Condvar力学?
浏览 8
提问于2022-01-30
得票数 5
回答已采纳
5
回答
互斥
锁
优先级
、
、
在多
线程
(双
线程
)程序中,我有这样的代码:{} m是一个
互斥
锁
(在我的例子中是一个
c
++11 std::mutex,但我认为如果我使用不同的库,它不会改变)。假设第一个
线程
拥有
互斥
锁
,并且它在(...) part中做了一些事情。第二个
线程
试图获取
互斥
锁
,但它在等待第一
线程
释放m。问题是:
浏览 1
提问于2012-12-22
得票数 5
回答已采纳
1
回答
多
线程
澄清
、
前者将等待
线程
完成,然后继续;而后者将与您计划执行的
线程
一起运行。 如果您想保护一些东西,比如向量std::vector<double> data,不让
线程
同时访问,您将使用
互斥
锁
。mutex的变量将被声明为全局变量,以便它们可以访问
线程
函数(或者,如果您创建的类将是多
线程
的,则可以将
互斥
对象声明为该类的私有/公共变量)。之后,您可以使用
互斥
锁
和解锁
线程
。access a gl
浏览 5
提问于2013-10-16
得票数 0
回答已采纳
7
回答
互斥
是否保证采购的顺序?当其他人还在等待的时候,解锁
线程
再次接受它。
、
、
、
、
最近,一位同事遇到了一个问题,我们认为这个问题归结为两个
线程
的
C
++应用程序中的以下一系列事件: 此后不久,
线程
A需要触摸受
互斥
锁
保护的资源,因此它
浏览 9
提问于2016-06-16
得票数 30
回答已采纳
6
回答
锁定和解锁的
互斥
锁
有多高的效率?
互斥
物的费用是多少?
、
、
、
在一种低级
语言
(
C
、
C
++或其他
语言
)中:我可以选择要么拥有一堆
互斥
(比如
线程
提供给我的或者本地系统库提供的任何内容),要么为对象提供一个单一的
互斥
。一个
互斥
物要多少钱?有很多
互斥
的是个问题吗?或者,我可以在代码中抛出与int变量一样多的
互斥
变量,
浏览 16
提问于2010-09-06
得票数 196
回答已采纳
2
回答
互斥
到只读变量
、
、
语言
是
C
,我的应用程序有多个
线程
。我有一个整数数组,它的值可以改变,我有
互斥
来读写它的值。但是由于数组的基地址(如&arr)永远不变,我是否需要一个
互斥
锁
来读取这个值(数组的基地址)?line*ptr = 2;ptr++; // and this line 我需要一个
互斥
锁
来做这件事吗
浏览 1
提问于2013-05-03
得票数 0
1
回答
共享指针
线程
安全零成本吗?
、
、
、
最近我发现共享指针的控制块(管理引用计数的东西)是
线程
安全的,所以复制和传递共享指针对于多
线程
的使用是安全的。然而,我也知道
C
++的理想之一是不必为不使用的特性付费。在我看来,控制块的
线程
安全似乎需要一些
互斥
锁
,这是一些开销。 考虑到在非多
线程
应用程序中使用共享指针是完全合理的,我不明白为什么会接受这种开销。因此,我的问题是,
C
++
语言
设计人员是否决定接受所有情况下的额外开销,或者这个
线程
安全控制块是否可以以零成本的
浏览 3
提问于2022-08-16
得票数 3
回答已采纳
1
回答
引导一个
C
++11 std::mutex将被阻塞的
线程
锁定为被动等待状态?
、
、
我有以下情况:
线程
A锁定
互斥
对象,直到数据准备就绪,然后执行
线程
B。当
互斥
锁
解除时,
线程
B开始工作。
线程
B试图锁定
互斥
锁
并被阻塞,直到
线程
A解锁为止。A可以先阻止
互斥
体。现在我想知道
线程
B中的mtx->lock()是等待主动的还是被动的。
线程
B也是如
浏览 2
提问于2015-10-05
得票数 4
回答已采纳
2
回答
在MultiThread编程中可以恢复死锁吗?
、
、
、
进程有大约10个
线程
,所有10个
线程
都进入死锁状态(假设所有
线程
都在等待Mutex变量)。 如何将进程(
线程
)从死锁状态中释放出来?有没有办法杀死低优先级的
线程
?我们是否可以将死锁进程附加到调试器并为Mutex变量分配适当的值(假设所有
线程
都在等待mutex变量MUT,但它的值是0,我们是否可以通过调试器将mut值分配给1)。
浏览 0
提问于2010-10-04
得票数 4
回答已采纳
3
回答
是否有“单一
互斥
死锁”(非递归
互斥
锁
的死锁类型情况)的术语?
、
、
以下代码挂起是因为需要多次调用才能获得非递归
互斥
体:{ Lock( pthread_mutex_t& mutex我一直说这是一个“单一
互斥
死锁”,但我想知道是否有一个更恰当的术语/短语。
浏览 5
提问于2017-12-31
得票数 1
回答已采纳
2
回答
尝试锁定的多个
线程
、
、
、
我想在
C
++程序中使用pthread和pthread_mutexes。我还没有任何实际的代码,只有一个关于
互斥
锁
如何工作的问题。如果我让
线程
1锁定一个
互斥
锁
,然后n个其他
线程
试图锁定同一
互斥
锁
,那么当
线程
1解锁
互斥
锁
时,行为会是什么?如果
线程
1获取了
锁
,那么
线程
2尝试锁定,然后
线程
3尝试锁定,那么当
锁<
浏览 3
提问于2013-06-14
得票数 1
回答已采纳
2
回答
如何在汇编
语言
级别实现
线程
同步?
、
、
、
、
虽然我熟悉并发编程的概念,如
互斥
和信号量,但我从未理解它们是如何在汇编
语言
级别上实现的。 但是,如何在
线程
之间同步访问这些标志呢?
浏览 5
提问于2010-03-03
得票数 25
回答已采纳
1
回答
生产者-消费者模式:唤醒UI
线程
、
如何实现以后台
线程
为生产者,UI
线程
为消费者的生产者-消费者模式?在传统的
C
++中,我会使用
互斥
锁
、条件变量和标志,可能还会使用某种并发队列。生产者
线程
将数据放入队列,锁定
互斥
锁
,设置标志,解锁
互斥
锁
,然后发信号通知条件变量。 如何使用UI
线程
实现类似的模式?谢谢。
浏览 1
提问于2013-04-30
得票数 1
回答已采纳
2
回答
如何将
互斥
锁
和解锁特定的条件下,如果-否则的梯子?
、
在运行在
线程
中的类的成员函数中,我想保护对某些共享资源的访问,如下面这样的if-否则阶梯。我希望以上述方式进行锁定,因为除了访问用于计算specific condition的共享资源之外,我不会在任何地方访问/使用它,运行每个if/else块的所有操作都是相当长时间运行的,因此我不希望阻止其他
线程
访问该共享资源我知道范围
锁
和
互斥
,但我想不出在这种情况下可以使用它的方式。问题是: 具有
互斥
锁
/解锁语句的,甚至是具有作用域
锁
的
锁</em
浏览 1
提问于2015-06-28
得票数 7
回答已采纳
1
回答
在一个方法中使用两个boost
互斥
?
、
、
我有一个情况,我有3个
线程
涉及。让我们称它们为A、B和
C
。
线程
A和B在同一个类中共享静态数据。
线程
C
也可能使用相同的静态数据。所以我创建了两个
互斥
锁
。一个
互斥
锁
覆盖
线程
A和
线程
B,它们彼此共享数据。另一个
互斥
锁
负责
线程
A和
C
共享数据。一个
互斥
锁
是boost scoped_lock,另一个<em
浏览 0
提问于2011-11-11
得票数 0
回答已采纳
3
回答
互斥
锁
的所有权是否只严格地传递给在解锁前请求
锁
的
线程
?
、
情况: pthre
浏览 5
提问于2016-08-29
得票数 2
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Go语言互斥锁
线程互斥锁Lock与全局解释器锁GIL
详解Linux多线程中的互斥锁、读写锁、自旋锁、条件变量、信号量
图解Go里面的互斥锁mutex了解编程语言核心实现源码
分享:C语言编程——LINUX 多线程
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
云直播
活动推荐
运营活动
广告
关闭
领券