carrot_strips 2023-04-18 09:53 采纳率: 100%
浏览 50
已结题

qt程序为什么debug成功,直接运行一直卡死线程结束不了?

写了一个qt程序,由生产者和消费者两个线程在总控制里启动,在debug调试时有结果执行成功,但直接构建加运行后就会一直卡死,生产者结束了,但一直没有信号发出使消费者结束。真搞不懂为什么o(╥﹏╥)o
如果需要的话,我发压缩包给你。

  • 写回答

3条回答 默认 最新

  • Vayne16 2023-04-18 10:04
    关注

    问题出在代码没有正确地处理线程的通信。在debug状态下因为程序执行速度较慢,可能没有暴露出线程同步的问题,而直接运行程序时,线程之间的不同步就会导致程序卡死。建议检查程序中线程的同步方式是否正确,例如使用信号和槽机制、使用互斥锁等。当生产者结束时,应当发送一个信号通知消费者停止运行,避免出现一直等待的情况。需要具体分析代码实现,才能给出更具体的建议。其中一些常见的线程同步问题包括:死锁、资源竞争等。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月3日
  • 已采纳回答 4月25日
  • 修改了问题 4月18日
  • 创建了问题 4月18日