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

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

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

  • 写回答

3条回答 默认 最新

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

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

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿
  • ¥15 Matlab在app上输入带有矩阵形式的初始条件发生错误
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址