线程A写、线程B读,能做到互不等待吗

u俺的me 2020-12-29 11:19:39
线程A往125MB的BUF写数据(1秒就能填满)、另一个线程B从BUF取数据(速率稍微慢一点),能否做到线程B取数据时、线程A还能继续往BUF填充数据?
不知道我有没有描述清楚,其实就是想提高线程B的发送效率,不至于在线程B取数据时、线程A处于等待状态,不想用锁。
...全文
6248 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kyph 2021-01-07
  • 打赏
  • 举报
回复
这是典型的生产者和消费者的问题,可以做到免锁。
gChickenRun 2021-01-04
  • 打赏
  • 举报
回复
把125mb的BUF能分成多个buf,形成一个队列。
qq_27767117 2020-12-30
  • 打赏
  • 举报
回复
这样有意义吗?即使线程同时运行,内存也不能同时读写.
niuiic 2020-12-29
  • 打赏
  • 举报
回复
不能提高B速率的情况下,想要节省资源可以考虑在软件层面模拟一下中断。底层硬件解决速率匹配问题就是这么做的。
RedWolf1999 2020-12-29
  • 打赏
  • 举报
回复
B读的慢,那你写肯定有大把时间是在等待,除非你用两个Buf,或三个Buf。

23,215

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧