我试图调试很少死锁的自定义线程池实现.所以我不能使用像gdb这样的调试器,因为我在遇到死锁之前点击了100次“启动”调试器.
目前,我在shell脚本中的无限循环中运行线程池测试,但这意味着我看不到变量等等.我试图std :: cout数据,但是减慢线程并减少死锁的风险意味着我可以等待1小时与我的无限之前获得消息.然后我没有得到错误,我需要更多的消息,这意味着再等一个小时…
如何有效地调试程序,使其重新启动一遍又一遍,直到它死锁? (或者也许我应该打开另一个问题与所有的代码一些帮助?)
先谢谢你 !
奖金问题:如何检查一切都很好用std :: condition_variable?你不能真正地告诉哪个线程是睡着的,或者是在等待条件下出现竞争条件.
解决方法
原文地址:https://www.jb51.cc/c/115376.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。