Idea 中的断点类型,在 Idea 中调试 java 代码时,断点类型有两种:
- All
- Thread
大概的区别是:All 会阻塞所有线程,而 Thread 只会阻塞当前线程。
其实看了上面的解释,还是很难明白其中的区别,用下面一段简单代码就可以区分清楚
实验步骤
image.png起两个线程,断点打在Thread中的Run内
-
先使用默认的All模式,debug运行
分步运行,第一步卡在 Thread1的第一行代码中
thread1-step1
第二步卡在同一处代码,只不过线程是Thread2
thread2-step1
第三步卡在Thread1的第二行
thread1-step2
第四步卡在Thread2的第二行
thread2-step2
-
再使用 Thread 模式,debug 运行,观察其中的不同
第一步卡在 Thread1的第一行
thread1-step1
第二步卡在 Thread1的第二行
thread1-step2
第三步卡在Thread2第一行
thread2-step1
第四步卡在Thread2第二行
thread2-step2
结论
使用All的模式,所有进入代码的线程,都会依次卡在第一个断点上,如果不放行,任意一个线程都不进入到下一步。如果是Thread的模式,那么就会每个线程进行依次进行调试,依次进入各自的断点中。
网友评论