Idea 中的斷點(diǎn)類(lèi)型陷揪,在 Idea 中調(diào)試 java 代碼時(shí)雷客,斷點(diǎn)類(lèi)型有兩種:
- All
- Thread
idea debug中斷點(diǎn)類(lèi)型
大概的區(qū)別是:All 會(huì)阻塞所有線程位迂,而 Thread 只會(huì)阻塞當(dāng)前線程产镐。
其實(shí)看了上面的解釋?zhuān)€是很難明白其中的區(qū)別倡蝙,用下面一段簡(jiǎn)單代碼就可以區(qū)分清楚
實(shí)驗(yàn)步驟
image.png
起兩個(gè)線程九串,斷點(diǎn)打在Thread中的Run內(nèi)
-
先使用默認(rèn)的All模式,debug運(yùn)行
分步運(yùn)行,第一步卡在 Thread1的第一行代碼中
thread1-step1
第二步卡在同一處代碼猪钮,只不過(guò)線程是Thread2
thread2-step1
第三步卡在Thread1的第二行
thread1-step2
第四步卡在Thread2的第二行
thread2-step2
-
再使用 Thread 模式品山,debug 運(yùn)行,觀察其中的不同
第一步卡在 Thread1的第一行
thread1-step1
第二步卡在 Thread1的第二行
thread1-step2
第三步卡在Thread2第一行
thread2-step1
第四步卡在Thread2第二行
thread2-step2
結(jié)論
使用All的模式烤低,所有進(jìn)入代碼的線程肘交,都會(huì)依次卡在第一個(gè)斷點(diǎn)上,如果不放行扑馁,任意一個(gè)線程都不進(jìn)入到下一步涯呻。如果是Thread的模式,那么就會(huì)每個(gè)線程進(jìn)行依次進(jìn)行調(diào)試腻要,依次進(jìn)入各自的斷點(diǎn)中复罐。