多线程如何调试

多线程如何调试

请问对于5-3这个例题来说,如果两个线程被死锁掉了,那么该如何debug调试?多线程的调试又有哪几种套路?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕阿园 2022-02-16 11:48:19

同学你好

1、同学是想知道发生死锁的位置吗,如果是,可以使用debug模式运行,但是不打断点,这样发生死锁后可以在debug perspective中选择主线程,右击选择"suspend",这样就会定位在发生死锁的位置,从而定位问题所在;在实际开发中我们应该通过各种方式避免死锁

https://img1.sycdn.imooc.com//climg/620c71dd092602c104520357.jpg

2、并没有什么套路哦,多线程调试需要在多个位置打断点,可以在每个run方法里打个断点,以及在if判断上打断点调试,具体的断点调试还是需要跟据具体情况做调整

祝学习愉快~

  • 提问者 到底是幼稚 #1

    idea中该如何操作?

    2022-02-16 14:00:09
  • 好帮手慕阿园 回复 提问者 到底是幼稚 #2

    同学你好,可以按照如下方式

    1、运行项目发生死锁后,点击Terminal,输入jps,查看进程id

    https://img1.sycdn.imooc.com//climg/620ca95b09bcc18a04710078.jpg

    https://img1.sycdn.imooc.com//climg/620ca98e09c30c4e04090128.jpg

    2、找到对应线程,输入jstack 对应id,如下:

    https://img1.sycdn.imooc.com//climg/620ca9cc093b5b2604460158.jpg

    3、查看打印的信息,此时该信息中 就会显示代码中出现死锁的位置

    https://img1.sycdn.imooc.com//climg/620caa0509087f3809050297.jpg

    祝学习愉快~

    2022-02-16 16:12:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师