多线程编程 互斥 同步问题

如题图片说明
问题描述:
1、设计程序write,read线程,wirte线程从消息队列尾端tail写入,read线程从消息队列头部head读取。
2、当写线程执行效率非常快,会发生什么情况?
3、当读线程执行效率非常快,会发生什么情况?

6个回答

读线程要用循环,当读取不到数据,就等待新数据写入。写线程也要有判断,发现满了就要等待写入

问题1,自己google 生产者消费者 + 你用的语言
写线程快,那么队列会满,上溢
读线程快,那么队列会空,下溢

大纲:
零。关于同步与互斥的多线程编程(一般思路)
        1. 申请“信号量”句柄,初始化信号量。 (HANDLE ...)
        2. 创建使用上线程的函数(函数中需要用到信号量)。(CreateSemaphore(...))......
答案就在这里:简单的多线程编程_同步与互斥问题
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

读的快,会发生读不到数据问题,写的快,问题不大,就是就是要考虑是不是造成缓冲区溢出

应该在读取之前先检查是否有数据可以读,没有的话就等待到有数据为止。写线程写之前应该先检查是否已满。

队列in out加个互斥不得了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问