社区
C++ 语言
帖子详情
两个线程使用queue队列必须要加锁吗?
zmok8866
2016-05-26 06:01:30
一个线程是生产者,一个线程是消费者,只有这两个队列。
也就是一个线程存入数据,一个线程读取并删除数据。
队列都是先进先出的,如果不加锁,似乎也可以顺利存取。
问:在这种只有两个线程的情况下,也必须给queue加锁吗?
...全文
6502
12
打赏
收藏
两个线程使用queue队列必须要加锁吗?
一个线程是生产者,一个线程是消费者,只有这两个队列。 也就是一个线程存入数据,一个线程读取并删除数据。 队列都是先进先出的,如果不加锁,似乎也可以顺利存取。 问:在这种只有两个线程的情况下,也必须给queue加锁吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Robin.zhanG
2019-08-26
打赏
举报
回复
无锁环形队列,了解一下
chain78
2019-02-18
打赏
举报
回复
引用 6 楼 赵4老师 的回复:
必须要加
一个线程读取,一个线程写入,也要加锁吗?
qq_43579080
2019-02-08
打赏
举报
回复
1
当一端写入时,如果此时数据没写完整,你读取的话会造成读取的数据是不完整的
registercsdn
2018-11-22
打赏
举报
回复
引用 7 楼 lm_whales 的回复:
问题出在队列可能为空
你好, @lm_whales,
你在这里提高空队列,
假如我在读之前加一条
if(!queue.empty()){
pop and read();
}
是不是就可以了,不需要加锁了,也能实现多线程,一个读,一个写?
lm_whales
2016-05-29
打赏
举报
回复
队列读取,数据量没有多大吧 数据小的话,直接读出来就是了 数据大的话,队列里面存储指针就可以了
lm_whales
2016-05-29
打赏
举报
回复
问题出在队列可能为空
赵4老师
2016-05-27
打赏
举报
回复
必须要加
ztenv
版主
2016-05-27
打赏
举报
回复
加锁吧,简单,虽然损失了一些效率。
paschen
版主
2016-05-27
打赏
举报
回复
肯定要加锁, 这和顺序存取没关系
dustpg
2016-05-26
打赏
举报
回复
没事就是运气好,出事就是运气差。两端同时写必须加锁,不加锁 = 作死。 一读一写的话不怕读取错误数据可以不加
zmok8866
2016-05-26
打赏
举报
回复
引用 1 楼 dustpg 的回复:
两个独立的队列何来“临界区”?
不好意思,写错了。是两个线程共用一个队列,一个线程负责存入数据,另一个线程取出和删除数据
dustpg
2016-05-26
打赏
举报
回复
两个独立的队列何来“临界区”?
进程
队列
线程
加锁
死锁
本文深入探讨了进程与
线程
通信的机制,包括
队列
(
Queue
)在进程间通信的应用,以及
线程
如何通过共享全局变量进行通信。详细讲解了多
线程
与多进程的区别,
线程
的创建与管理,以及解决
线程
安全问题的
加锁
方法。
Python高阶专题:多
线程
编程之
线程
间通信
本文探讨多
线程
编程中
线程
间的通信问题,通过共享变量和消息
队列
Queue
两种方式,详细解析
线程
不安全问题及
加锁
解决方法。
python消费者问题(同步)
本文探讨了在多
线程
环境下
使用
队列
进行任务调度的机制,详细讲解了
Queue
.task_done()和
Queue
.join()如何确保生产者和消费者模型中任务的正确执行,以及
加锁
(lock)对
线程
安全的影响。
python多
线程
队列
数据丢失_python 爬虫 多
线程
用
queue
做
队列
,消费者
线程
无法从queue中取出数据。...
本文探讨了Python多
线程
中
使用
queue
遇到的数据丢失问题,指出在消费者
线程
尝试从
队列
获取数据时可能由于join()导致阻塞。建议在while循环中加入try...except捕获
Queue
.Empty异常,当
队列
为空时结束
线程
。同时,展示了多
线程
写入MySQL数据库的示例,强调在实际操作中需要
加锁
以确保数据一致性。
python
线程
安全
队列
讲解
本文介绍了Python中
线程
安全的
Queue
模块,包括FIFO和LIFO
队列
,以及
队列
的常用方法如qsize、empty、full、put和get。在多
线程
环境下,
Queue
无需额外
加锁
即可确保
线程
安全。进一步探讨了生产者与消费者模式,通过
队列
作为缓冲区实现两者之间的同步。案例中,生产者负责将URL放入
队列
,消费者则从
队列
中取出并处理链接,例如下载图片。
C++ 语言
65,212
社区成员
250,516
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章