美文网首页IntelliJ Idea
IntelliJ IDEA 之 多线程调试重点参数

IntelliJ IDEA 之 多线程调试重点参数

作者: niexianglin | 来源:发表于2018-12-20 11:28 被阅读0次

    IntelliJ IDEA 之 多线程调试重点参数


    写在前面

    暑假期间,正值中午,困意十足,正当精神游离之际。有同事在工作群里喊,测试环境某应用频繁出现响应超时。我立刻缓过神来,八九不离十,这个彩蛋是我埋的。

    题外话

    正常情况下,我们通过 Idea 创建的断点,都是 Suspend All,那么 Suspend All 代表的什么意思呢?因为今天的内容较少,这里我必须卖个关子,这样会显得内容多一些。

    主要内容


    + 演示环境

    + 重现 “题外话” 中的场景

    + Breakpoint Suspend 参数介绍

    + 附件和注意

    演示环境 ,介绍本次远程调试所依赖的软件环境。


    + Apache Tomcat :7.0.55

    + IntelliJ IDEA :2018.2.1 (Ultimate Edition) 

    + Windows 10 家庭中文版

    重现 “题外话” 中的场景


    精神充沛时,我在远程调试(IntelliJ IDEA 之 远程调试篇)测试机的代码,并在 “Hello World” 类添加了行断点(IntelliJ IDEA 之 断点类型(Breakpoint)),然后就开始游离了。从此之后该测试应用就永远停止在了我的断点处,同时也无法提供其他的请求了。

    stop the world

    Breakpoint Suspend 参数介绍,在创建断点时有一个重要参数:Suspend

    Suspend:未勾选,程序运行到断点处并不会阻塞,而会继续执行后面的逻辑。

    Suspend:勾选,代表程序运行到断点处会阻塞。

    + All:勾选,代表断点会阻塞所有线程。

    + Thread:勾选,代表断点只会阻塞当前线程。

    [Suspend勾选,All勾选] 是默认值,所以才会出现 “Stop The World” 的可怕情况。所以说,在多线程调试时,若你希望阻塞程序,最好选择 Thread 当前线程阻塞策略,这样就不会影响到其他线程的工作。


    Suspend 参数

    No Stop The World


    no stop the world

    附件和注意


    附件和注意,包括上述 Gif 图片中的配置信息和测试代码片段,若有任何未提及到的内容,请联系我。

    注意:

    本文的最后一张图片显示了选择 Thread 阻塞策略时的场景,因为 Idea 默认的阻塞策略是 All ,所以在远程调试的时候要注意,防止影响其他同事。当然若是在本地测试的话,影响就不会那么大了。


    微信公众号


    文章内容大多数都是从我的公众号搬过来的,内容可能没有公众号更新的及时,下面是我的公号,欢迎来访。

    相关文章

      网友评论

        本文标题:IntelliJ IDEA 之 多线程调试重点参数

        本文链接:https://www.haomeiwen.com/subject/vsxykqtx.html