Idea中断点类型:All和Thread的区别
2020-08-16 本文已影响0人
sterefine
Idea 中的断点类型,在 Idea 中调试 java 代码时,断点类型有两种:
- All
- Thread
![](https://img.haomeiwen.com/i5211788/4ca56f1d5dfcf6bf.png)
大概的区别是:All 会阻塞所有线程,而 Thread 只会阻塞当前线程。
其实看了上面的解释,还是很难明白其中的区别,用下面一段简单代码就可以区分清楚
实验步骤
![](https://img.haomeiwen.com/i5211788/9e74bc2a428ac571.png)
起两个线程,断点打在Thread中的Run内
-
先使用默认的All模式,debug运行
分步运行,第一步卡在 Thread1的第一行代码中
thread1-step1
第二步卡在同一处代码,只不过线程是Thread2
![](https://img.haomeiwen.com/i5211788/3ae9d981e3a0a4d4.png)
第三步卡在Thread1的第二行
![](https://img.haomeiwen.com/i5211788/134308bb17dba066.png)
第四步卡在Thread2的第二行
![](https://img.haomeiwen.com/i5211788/959940458469e75f.png)
-
再使用 Thread 模式,debug 运行,观察其中的不同
第一步卡在 Thread1的第一行
thread1-step1
第二步卡在 Thread1的第二行
![](https://img.haomeiwen.com/i5211788/c92e78675485b724.png)
第三步卡在Thread2第一行
![](https://img.haomeiwen.com/i5211788/3b5da3ef660afecf.png)
第四步卡在Thread2第二行
![](https://img.haomeiwen.com/i5211788/9ad5419f58779eec.png)
结论
使用All的模式,所有进入代码的线程,都会依次卡在第一个断点上,如果不放行,任意一个线程都不进入到下一步。如果是Thread的模式,那么就会每个线程进行依次进行调试,依次进入各自的断点中。