腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(6986)
视频
沙龙
8
回答
互斥
示例/教程?
、
、
、
、
我是多线程的新手,一直在尝试了解
互斥
锁
是如何工作的。我做了很多谷歌搜索,但仍然对它的工作
原理
产生了一些疑问,因为我创建了自己的程序,其中的锁定不起作用。
互斥
量的一个绝对不直观的语法是pthread_mutex_lock( &mutex1 );,它看起来像是
互斥
量被锁定了,而我真正想要锁定的是其他一些变量。这种语法是否意味着锁定一个
互斥
锁
会锁定一个代码区域,直到
互斥
锁
被解锁?那么线程如何知道区域被锁定了呢?[更新:线程知道该区域
浏览 82
提问于2011-02-14
得票数 192
回答已采纳
3
回答
用C/C++命名进程内部
互斥
锁
?
、
、
、
、
是否有使用C/C++ (在Unix/
Linux
中)
实现
命名进程内部
互斥
锁
的方法?如果您使用内存映射文件或共享内存,您将获得文件系统持久性... 有什么想法吗?
浏览 0
提问于2011-09-24
得票数 0
2
回答
glibc/NPTL/
Linux
健壮
互斥
中的竞争条件?
、
、
在2010年关于问题的评论中,jilles声称: glibc强大的
互斥
量之所以如此之快,是因为glibc采用了危险的捷径。当内核将
互斥
锁
标记为“将导致EOWNERDEAD”时,不能保证
互斥
锁
仍然存在。如果
互斥
锁
被销毁,内存被替换为内存映射文件,该文件恰好在正确的位置包含最后一个拥有线程的ID,并且最后一个拥有线程在写入
锁
字之后(但在从拥有
互斥
锁
的列表中完全删除
互斥
锁
之前)终止,则
浏览 8
提问于2012-08-14
得票数 16
回答已采纳
1
回答
pthread_mutex_t可以在内存中移动吗?
、
我想构建一个动态的pthread_mutex错位数组,它将随着时间的推移而增长(添加更多
互斥
锁
)。我的问题是,如果使用realloc()移动数组,它们是否仍然有效。我担心的是,pthread_mutex_init()可能会以某种方式设置依赖于
互斥
量地址的内部信息。如果结论是不这样做,那么我想知道,一般来说,我如何创建越来越多的
互斥
锁
。
浏览 2
提问于2013-01-31
得票数 7
1
回答
C++中的监视器和
互斥
同步
、
我将使用
互斥
量和监视器在C中
实现
合并排序,但我找不到一个好的源代码。如何用C
实现
互斥
锁
和监视器? 我使用的是
Linux
(Ubuntu)。
浏览 0
提问于2013-04-29
得票数 0
3
回答
是否可以在调用pthread_cond_wait()之前检查
互斥
锁
是否已锁定?
、
、
我想在代码中的pthread_cond_wait抽象中添加一些调试代码,以检查调用代码是否真的拥有
互斥
锁
。这是为了检查其余调用者的正确性。有没有办法检查
互斥
锁
是否被锁定,或者在pthread
实现
(在
Linux
上)中启用调试模式来告诉我它是否被锁定?
浏览 1
提问于2012-03-01
得票数 2
回答已采纳
2
回答
如何在内核中的
互斥
锁
解锁期间检查所有权?
、
、
我试图理解
Linux
内核中
互斥
实现
的内部机制。在我看来,
互斥
实现
最基本的问题之一是 只有获得
锁
的线程才能释放
互斥
锁上的
锁
。然而,即使在通过
互斥
实现
()之后,我也无法理解如何在mutex_unlock期间检查所有权?
浏览 1
提问于2015-08-18
得票数 1
2
回答
互斥
访问和系统调用
、
、
、
、
我知道,在
Linux
中,
互斥
被
实现
为下面的futexes,futex使用比较和交换机制。通常,为了获取
锁
,用户空间线程不需要进行系统调用,因为
锁
是在用户空间中解析的。现在,我的问题是,当存在很高的争用和许多线程试图同时锁定
互斥
时,会发生什么。那么,是否发生了系统调用,以便内核决定授予
互斥
对象哪个线程?尤其是当线程优先级不同的时候?我自己也这么认为。
浏览 3
提问于2011-08-15
得票数 11
回答已采纳
1
回答
如何检查pthread_mutex是否基于健壮的futex
、
、
、
我试图在
Linux
中使用基于鲁棒futex的线程
互斥
锁
,因为我需要快速和健壮(恢复“死”
锁
)。如何检查任何
Linux
系统上的线程
互斥
库是否基于健壮的futex? 谢谢!
浏览 6
提问于2013-07-02
得票数 1
2
回答
c/c++群集作为
linux
上的
互斥
,对文件删除不健壮
、
在C中使用flock的文件锁定通常用于
实现
跨平台的协作进程间锁定/
互斥
锁
。一段时间后,我手动删除了
锁
文件(rm /tmp/lockfile)。正在运行的进程继续相互协作,但是任何想要
浏览 2
提问于2015-12-16
得票数 3
3
回答
当
互斥
量可用时,在哪里使用二进制信号量?
、
、
、
在阅读有关二进制信号量和
互斥
量的文章时,我发现了以下区别: 那么,我应该在哪里使用二进制信号量呢?有人能举个例子吗?编辑:我想我已经弄清楚了两者的工作
原理
。基本上,二进制信号量提供同步,而
互斥
提供锁定机制。我从Galvin操作系统的书中读了一
浏览 0
提问于2012-07-17
得票数 7
回答已采纳
1
回答
SMP
linux
中的
互斥
锁
所有者
、
、
、
、
在
互斥
锁
的内核
实现
中,线程所有者字段仅当它是SMP构建时才存在。我可以理解,在良好和干净的代码下,只有在获取成功时,线程才会调用release,所以我们可以通过不跟踪线程来节省一些缓存和cpu周期。是因为在SMP中,
互斥
是混合的并且旋转,而线程拥有者在另一个cpu上并且需要这个字段作为引用,还是它背后有更多的原因?
浏览 4
提问于2012-09-25
得票数 0
回答已采纳
1
回答
互斥
锁
总是作为自旋等待
实现
吗?
、
、
、
互斥
锁
总是作为自旋等待
实现
吗?
互斥
锁
能否
实现
为块等待?(操作系统概念第5.4节只提到通过spin等待
实现
。见下文。)(作为比较,信号量的等待可以通过在循环中繁忙地旋转或被阻塞来
实现
。见操作系统概念9ed第5.5和5.6节和是否仍在忙于等待信号量的进程阻塞
实现
?) 如果
互斥
锁
可以
实现
为块等待,那么
互斥
锁
是否与二进制信号量相同?在操作系统概念中,5.
浏览 0
提问于2020-11-09
得票数 0
5
回答
为什么pthread
互斥
被认为比futex“慢”?
、
、
、
为什么POSIX
互斥
锁
被认为比futexes更重或更慢?pthread
互斥
类型的开销来自哪里?我听说pthread
互斥
是基于futexes的,当没有竞争时,不要对内核进行任何调用。看来pthread
互斥
锁
仅仅是futex的“包装器”。 开销是否仅仅体现在函数包装器调用和
互斥
函数“设置”futex上(即,基本上设置pthread
互斥
函数调用的堆栈)?或者是否有一些额外的内存障碍步骤发生在pthread
互斥
中?
浏览 0
提问于2011-06-16
得票数 49
回答已采纳
1
回答
Windows Phone
互斥
问题
、
我做了一些关于
互斥
锁
的研究,但找不到任何有价值的东西来阐明我所能理解的东西。我可以很容易地在
linux
上使用
互斥
锁
。但是我不知道为什么我的
互斥
锁
不能在我的应用程序上工作。我还寻找了一些示例,并
实现
了它。但这不可能;public static Mutex mutex = new Mutex(true,"mut");privat
浏览 4
提问于2013-02-06
得票数 0
2
回答
pthread_mutex_unlock如何区分线程?
、
、
、
、
只有
互斥
锁
的所有者才能解锁。但是
互斥
锁
如何区分锁定它的线程呢?在
Linux
中,线程有什么不同的特性吗?
浏览 1
提问于2015-02-10
得票数 0
回答已采纳
1
回答
是否可以列出系统中的所有
互斥
体?
、
、
使用ipcs命令,我们可以列出信号量、共享内存等,但不能列出
互斥
量。有没有办法列出系统中的
互斥
项?如果是,是否有一种方法可以使用某些命令释放它们?(类似于ipcrm命令,可以使用它来清除信号量)。
浏览 2
提问于2015-11-15
得票数 0
回答已采纳
1
回答
当共享POSIX
互斥
锁
时,我能重新映射它吗?
、
、
、
、
假设共享POSIX
互斥
体已经初始化(使用PTHREAD_PROCESS_SHARED)。另外,下面这个特定于
Linux
的备选方案是什么?.); // MREMAP_MAYMOVE 例如,我可以想象一个PTHREADS
实现
,它将存储指向进程内部某个锁定
互斥
对象的指针如果
互斥
锁
配置为健壮(PTHREAD_MUTEX_ROBUST),则如果进
浏览 5
提问于2013-02-27
得票数 5
3
回答
静态和动态pthread
互斥
初始化
、
、
、
、
我正在阅读“高级
Linux
编程”这本书。可以使用init函数动态初始化
互斥
: pthread_mutex_init(&theMutex, NULL);
互斥
锁
可以通过宏静态初始化)“,
互斥
锁
将在堆区域创建,因此我们必须手动删除它。但是,如果我们静态地创建
互斥
锁
,其效果将等同于通过调用pthread_mutex_init()并将参数attr指定为NULL来进行动态初始化,只是不执行任何错
浏览 1
提问于2013-11-28
得票数 1
3
回答
CreateMutex()在内部是如何工作的?
、
基本上,它用于使应用程序实例成为单例。
浏览 0
提问于2010-01-20
得票数 0
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Linux驱动必学知识点-内核互斥锁
详解Linux多线程中的互斥锁、读写锁、自旋锁、条件变量、信号量
Go语言互斥锁
【精通内核】Linux内核rcu(顺序)锁实现原理与源码解析
图解Go里面的互斥锁mutex了解编程语言核心实现源码
热门
标签
更多标签
云服务器
ICP备案
对象存储
实时音视频
即时通信 IM
活动推荐
运营活动
广告
关闭
领券