Idea中断点类型:All和Thread的区别

Idea 中的断点类型,在 Idea 中调试 java 代码时,断点类型有两种:

  • All
  • Thread
idea debug中断点类型

大概的区别是:All 会阻塞所有线程,而 Thread 只会阻塞当前线程。
其实看了上面的解释,还是很难明白其中的区别,用下面一段简单代码就可以区分清楚

实验步骤

image.png

起两个线程,断点打在Thread中的Run内

  1. 先使用默认的All模式,debug运行
    分步运行,第一步卡在 Thread1的第一行代码中


    thread1-step1

第二步卡在同一处代码,只不过线程是Thread2


thread2-step1

第三步卡在Thread1的第二行


thread1-step2

第四步卡在Thread2的第二行


thread2-step2
  1. 再使用 Thread 模式,debug 运行,观察其中的不同
    第一步卡在 Thread1的第一行


    thread1-step1

第二步卡在 Thread1的第二行


thread1-step2

第三步卡在Thread2第一行


thread2-step1

第四步卡在Thread2第二行


thread2-step2

结论

使用All的模式,所有进入代码的线程,都会依次卡在第一个断点上,如果不放行,任意一个线程都不进入到下一步。如果是Thread的模式,那么就会每个线程进行依次进行调试,依次进入各自的断点中。

你可能感兴趣的:(Idea中断点类型:All和Thread的区别)