idea中斷點類型之All和Thread的區(qū)別介紹
All模式
- 所有的線程都要在當前位置被阻塞,誰先來就先阻塞誰,發(fā)生阻塞時其他的線程當前時刻執(zhí)行到哪里就在哪里進行原地等待。
- 如果此時按下一步F6,那所有的線程都通過阻塞代碼如果此時按恢復程序運行F8,那么當前線程通過阻塞代碼,等待下一個線程的到來,也是誰先來阻塞誰,發(fā)生阻塞時其他的線程當前時刻執(zhí)行到哪里就在哪里進行原地等待。
public class ThreadAndAllBreakApplication { public static void main(String[] args) { ThreadTest thread1 = new ThreadTest(); thread1.setName("線程A"); thread1.start(); ThreadTest thread2 = new ThreadTest(); thread2.setName("線程B"); thread2.start(); ThreadTest thread3 = new ThreadTest(); thread3.setName("線程C"); thread3.start(); } } class ThreadTest extends Thread { @Override public void run() { System.out.println(Thread.currentThread().getName() + ": 1"); try { long millis = RandomUtil.randomLong(100, 500); System.out.println(Thread.currentThread().getName() + "睡眠: " + millis); Thread.sleep(millis); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName() + ": 2"); System.out.println(Thread.currentThread().getName() + ": 3"); System.out.println(Thread.currentThread().getName() + ": 設置斷點的前一行代碼"); // 當前行設置斷點 System.out.println(Thread.currentThread().getName() + ": 4"); System.out.println(Thread.currentThread().getName() + ": end");
線程A: 1
線程C: 1
線程B: 1
線程C睡眠: 283
線程A睡眠: 340
線程B睡眠: 127
線程B: 2
線程B: 3
線程B: 設置斷點的前一行代碼 // B來到了這里,此時其他線程A、B在原地等待,即A、B都在睡眠。
線程A: 2 // A之前執(zhí)行到睡眠,現(xiàn)在執(zhí)行2
線程A: 3
線程A: 設置斷點的前一行代碼 // A來到了這里,此時其他線程B、C在原地等待
線程C: 2 // c之前執(zhí)行到睡眠,現(xiàn)在執(zhí)行2
線程C: 3
線程A: 4
線程B: 4
線程A: end
線程C: 設置斷點的前一行代碼 // C來到了這里,如果不放行斷點,B一直也不會輸出end,會在原地等待(這里證明了當某個線程被All斷點阻塞后,其他線程會在原地等待)
線程B: end
線程C: 4
線程C: end
Thread模式
所有的線程都會運行到斷點處然后阻塞
- 如果此時按下一步F6,那當前的線程都通過阻塞代碼,其他線程不動。
- 如果此時按恢復程序運行F8,那么當前線程通過阻塞代碼,并自動切換到下一個阻塞線程進行調試。
到此這篇關于idea中斷點類型:All和Thread的區(qū)別的文章就介紹到這了,更多相關idea 斷點All和Thread內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Mac中IntelliJ IDEA 2019.1注冊過程分享
這篇文章主要介紹了Mac中IntelliJ IDEA 2019.1注冊過程,本文給大家分享到腳本之家平臺供大家學習,需要的朋友可以參考下2020-02-02java Date裝成英文String后,無法再轉回Date的解決方案
本文介紹了java Date裝成英文String后,無法再轉回Date的解決方案。具有一定的參考價值,下面跟著小編一起來看下吧2017-01-01Java利用ip2region實現(xiàn)獲取IP地址詳情
ip2region是一個離線IP地址定位庫和IP定位數(shù)據(jù)管理框架,10微秒級別的查詢效率,提供了眾多主流編程語言的?xdb?數(shù)據(jù)生成和查詢客戶端實現(xiàn)。本文將利用ip2region實現(xiàn)獲取IP地址詳情,感興趣的可以了解一下2022-07-07