腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(3134)
视频
沙龙
2
回答
信号量
互斥
锁
防止死锁-C程序
、
、
我有一个用C语言编写
的
多线程应用程序--有3个线程,为了防止
同步
问题/死锁,我
使用
了
信号量
和
互斥
锁
。1个线程是
消费者
,1个线程是
生产者
,1个线程是输出
消费者
/
生产者
线程更新
的
值
的
监视器。初始化
信号量
sem_init(&full, 0, 0); 数据在produ
浏览 0
提问于2013-09-07
得票数 1
1
回答
基于
信号量
的
反向
生产者
-
消费者
解决方案
的
算法结果
、
、
利用这种
信号量
算法解决了
生产者
-
消费者
问题,其中
信号量
被缓冲器大小减小,
信号量
减少1,表示临界截面。 如果这些操作是连续地进行
的
,那么为什么不正确
的
做法是减少1(
互斥
),然后减少缓冲区大小?我知道
生产者
和
消费者
都会同时睡觉,造成死锁,但是为什么这个小
的
切换会导致整个算法失败呢?
浏览 2
提问于2014-11-04
得票数 3
回答已采纳
5
回答
同时
使用
信号量
和
互斥
量是一种好方法吗?
、
网上有很多关于
信号量
和
互斥
量区别的文章/问题,但是在一个线程函数中同时
使用
互斥
量
和
信号量
是一个好方法吗?类似这样
的
东西(在C中)//(Access to critical section) pthread_mutex_unlock
浏览 3
提问于2014-11-26
得票数 2
3
回答
生产商/
消费者
中
的
信号量
与
互斥
量
、
、
、
、
在
生产者
-
消费者
问题中,为什么经常建议
使用
信号量
而不是
使用
锁
/
互斥
锁
? 我看不到
使用
信号量
的
正当理由,因为我们只有2线程协调。在这种情况下,
锁
似乎更容易编码和解释,因为一个线程将锁定缓冲区,然后释放它,以便其他线程也能这样做。只有两个线程,所以我看不出信令
的
使用
。有人能说出为什么人们建议
使用
信号量
,通
浏览 1
提问于2018-09-01
得票数 2
2
回答
锁定变量与
信号量
、
、
、
锁
变量
和
信号量
看起来是相同
的
。解释它们之间
的
一个重要区别 我已经看过了我所有的笔记,我能找到
的
就是它们之间
的
相似性,比如它们是原子操作,它是一个共享资源。我似乎找不到“一个显著
的
区别”。
浏览 0
提问于2019-04-16
得票数 0
1
回答
只
使用
互斥
锁
和
信号量
的
生产者
-
消费者
同步
(
无
pthread_cond
)
、
、
我目前正在学习如何
使用
pthread在linux中
使用
互斥
量
和
信号量
进行多线程处理,并且我一直在研究一个实现多
生产者
/单
消费者
问题
的
方法,它
只
使用
了两个二进制
信号量
和
一个
互斥
量来
同步
对有界缓冲区
的
访问
浏览 9
提问于2019-06-26
得票数 2
回答已采纳
1
回答
生产者
消费者
问题c没有
消费者
的
输出
、
在这里,我尝试
使用
循环队列来插入
和
删除方法,以及
使用
插入
和
删除函数来
同步
im编译与gcc文件。c -lpthread -lrt并运行与./a.out50 11。在运行我
的
生产者
产品
和
输出正确
的
时候 producer thread #0producer produced 7 但是无论出于什么原因,我都不能让我
的
消费者
输出,我试着将我
的
浏览 25
提问于2021-04-18
得票数 0
回答已采纳
2
回答
互斥
和
信号量
之间
的
区别--内进程
和
进程间
的
区别
、
、
、
、
阅读关于这两个(
互斥
量
和
信号量
)差异
的
各种帖子,我得出了以下结论,如果我是wrong.This,请更正我是否主要与windows有关。我理解关键部分是代码中需要保护(即)不能同时被多个线程访问
的
部分。现在,为了保护这些关键部分,
使用
了Mutexes。这些
互斥
可以是算法,也可以是数据结构。现在
互斥
一般可以有两种味道(内部过程
和
内部过程)。对于不调用内核进行锁定
的
进程内部,我们可以
使用
(如lock_g
浏览 8
提问于2014-11-25
得票数 4
回答已采纳
1
回答
使用
3个条件变量
同步
3个线程
、
、
、
、
然而,这个问题主要是一个方法/算法
的
问题。我试图
同步
我
的
三个正在运行
的
线程: 1.线程:一次传输一个样本,并将其添加到“输出”缓冲区2.线程:一次接收一个样本,并将其添加到“输入”缓冲区3.线程:从“输出”
和
“输入”缓冲区中提取数据,并将它们添加到单独
的
绘图缓冲区我希望这些线程
同步
运行,并尝试了一种方法,即我将一个条件变量与每个线程
的
布尔条件一起
使用
,其中一个线程向下一个线程发出信号,因此在循环中是第四个,按照上面列出<em
浏览 0
提问于2013-07-18
得票数 2
3
回答
计数
信号量
的
用法
、
、
要明确
的
是:我主要是做嵌入式
的
东西,即它是C
和
某种实时内核在微控制器中;但实际上这个问题应该是平台无关
的
。 我读过Michael:
的
好文章,还有这篇。我清楚地理解二进制
信号量
的
意义,以及
互斥
的
意义。但老实说,我从来不知道,也仍然无法理解所谓
的
计数
信号量
(即最大计数>1
的
信号量
)是为了什么。在什么情况下我应该
使用
它?很久以前,在我读到迈克尔·
浏览 2
提问于2014-10-06
得票数 5
回答已采纳
1
回答
信号量
、
互斥
量
和
条件变量
的
选择
、
、
、
我有一个
生产者
线程
和
一个
消费者
线程,
生产者
线程是实时
的
,并且对确定性敏感。 因此,我决定
使用
无
锁
的
fifo队列,将处理从
生产者
线程提升到
消费者
线程。这样做
的
目的是让
使用
者既能响应又能避免忙碌等待,同时又不会让
生产者
延迟一段不确定
的
时间;因此有没有分配/锁定(以及内核条目,我想?)等等是完全不可能
的
。我
浏览 2
提问于2015-07-28
得票数 2
1
回答
生产者
-
消费者
模型-二进制
信号量
还是
互斥
?
、
、
、
这主要是关于对这个概念
的
理解,这让我感到困惑。 Mutex意味着一个线程控制对共享资源
的
访问,执行操作并解锁,然后只有其他线程才能获得访问
锁
的
权限。二进制
信号量
类似于线程可以访问共享资源,但可以访问
锁
,而另一个线程可以解锁。在我在上看到
的
最后一个问题中,有人提到了"semaphores are more suitable for some synchronization problems like producer-consumer例如,我
的
浏览 6
提问于2010-10-22
得票数 5
回答已采纳
3
回答
C++11非阻塞
生产者
/
消费者
、
、
我有一个C++11应用程序,它有一个高优先级线程在产生数据,另一个低优先级线程在
使用
数据(在我
的
例子中,是把数据写到磁盘上)。我希望确保高优先级
生产者
线程永远不会被阻塞,也就是说,它
只
使用
无
锁
算法。
使用
无
锁
队列,我可以将数据从
生产者
线程推送到队列,并从
消费者
线程轮询数据,从而实现上述目标。我想修改我
的
程序,使
消费者
线程在不活动时阻塞,而不是轮询。
浏览 1
提问于2014-01-29
得票数 9
1
回答
使用
信号量
实现
生产者
-
消费者
模式
、
、
我知道
生产者
-
消费者
模式可以
使用
信号量
同步
原语来实现。但是有多少
信号量
和
哪些事件是实现所必需
的
呢?
浏览 0
提问于2020-06-01
得票数 0
2
回答
生产者
消费者
只
使用
一个额外
的
信号量
、
、
、
在操作系统中,正如您在上面针对
生产者
消费者
的
链接中所看到
的
,
使用
了两个
信号量
full
和
empty,为什么不能
只
使用
一个数量
的
信号量
fullEmpty来完成这个任务。我
的
意思是,我们有一个二进制
信号量
mutex
和
另一个
信号量
fullEmpty,最初是0,因为缓冲区中没有项,那么为什么需要2
信号量
(full,emp
浏览 1
提问于2018-09-04
得票数 2
回答已采纳
3
回答
很难理解
消费者
生产者
问题中
的
一个问题
、
、
我真的很难理解
消费者
生产者
问题中
的
一个问题,例如在下面的图片中,关于
消费者
的
简单结构:我
的
大问题是,在等待(
互斥
)
和
信号(
互斥
)中,参数
互斥
是相同
的
,因此,如果信号(
互斥
)被阻塞,信号(
互斥
)唤醒等待(
互斥
)过程是有意义
的
,但在等待(完全)
和
信号(空)中它们传递不同
的
参数,这样信号
浏览 6
提问于2013-10-20
得票数 0
回答已采纳
1
回答
生产者
-
消费者
模式:唤醒UI线程
、
如何实现以后台线程为
生产者
,UI线程为
消费者
的
生产者
-
消费者
模式?在传统
的
C++中,我会
使用
互斥
锁
、条件变量
和
标志,可能还会
使用
某种并发队列。
生产者
线程将数据放入队列,锁定
互斥
锁
,设置标志,解锁
互斥
锁
,然后发信号通知条件变量。 如何
使用
UI线程实现类似的模式?谢谢。
浏览 1
提问于2013-04-30
得票数 1
回答已采纳
2
回答
跨线程
的
内存管理
、
、
我正在开发
的
模块由两个线程(类似于
生产者
/
消费者
)组成,它们之间
的
消息传递是通过boost::message_queue发送函数发送所生成对象
的
地址来完成
的
。到目前为止,内存管理是通过在
生产者
线程中实例化对象,并在
使用
后在
消费者
线程中删除它来显式完成
的
。现在,出于显而易见
的
原因(控制复杂性
和
避免泄漏),我计划
使用
自管理内存(智能指针/ boos
浏览 1
提问于2011-11-15
得票数 2
3
回答
C:如何使线程之间进行通信?
、
、
、
有趣
的
是,这似乎是一个基本
的
问题,但我在C语言中找不到它
的
任何例子(因此,我
只
找到了Python、C#
和
C++)。要点是:作为一个Qt程序员,当我需要在不同线程之间传输一些数据时,我会在此之间启动一个信号槽连接,并
使用
emit signal机制来完成工作。但是现在我正在为嵌入式Linux开发一个C应用程序,在那里我需要做类似的工作,但是我没有Qt
的
机制。问题是:如何使两个或多个线程在C中以类似于Qt具有信号
和
插槽
的
方式进行通信?我知道
浏览 7
提问于2014-09-16
得票数 9
2
回答
c++多线程慢处理
、
、
我有多个
消费者
线程
和
一个
生产者
线程。
生产者
线程将数据写入属于某个
消费者
线程
的
映射中,并向
消费者
线程发送信号。在插入
和
擦除数据时,我在map周围
使用
互斥
锁
。然而,就速度性能而言,这种方法看起来并不高效。你能推荐另一种方法来代替map,它需要
互斥
锁
和解锁,我认为
互斥
锁
减慢了传输速度。
浏览 6
提问于2013-09-27
得票数 0
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
互斥与同步
TencentOS tiny RTOS快速入门
Linux系统编程 信号量
万字长文把云计算服务软件基础框架的构建给讲的明明白白的!
详解Linux多线程中的互斥锁、读写锁、自旋锁、条件变量、信号量
热门
标签
更多标签
云服务器
ICP备案
实时音视频
即时通信 IM
对象存储
活动推荐
运营活动
广告
关闭
领券