one_half
2015-09-16 12:48
采纳率: 100%
浏览 1.6k
已采纳

多线程编程 互斥 同步问题

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • oyljerry 2015-09-16 13:21
    已采纳

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

    已采纳该答案
    打赏 评论
  • bdmh 2015-09-16 12:42

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

    打赏 评论
  • threenewbee 2015-09-16 12:50

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

    打赏 评论
  • Robot-C 2015-09-16 12:51

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

    打赏 评论
  • zuishikonghuan 2015-09-16 15:04

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

    打赏 评论
  • yangbo50304 2015-09-17 02:38

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

    打赏 评论

相关推荐 更多相似问题