IDEA如何對多線程進行debug的示例詳解
寫一個簡單的demo
public class ThreadDebug { public static void main(String[] args) { MyThread myThread = new MyThread(); Thread thread1 = new Thread(myThread, "thread 1"); Thread thread2 = new Thread(myThread, "thread 2"); Thread thread3 = new Thread(myThread, "thread 3"); thread1.start(); thread2.start(); thread3.start(); } } class MyThread implements Runnable { @Override public void run() { System.out.println(Thread.currentThread().getName() + " running"); } }
如果我們多次執(zhí)行這個代碼,就會發(fā)現(xiàn),每一次打印的結(jié)果都不一樣,三個線程的輸出順序是隨機的,并且每一次debug只會進入到一個線程的執(zhí)行每次執(zhí)行結(jié)果隨機是因為不一定哪個線程可以先獲得CPU時間片
更改debug設(shè)置
其實,在IDEA中有一個設(shè)置,那就是當(dāng)我們在斷點處單擊鼠標(biāo)右鍵就會彈出一個設(shè)置對話框,當(dāng)我們把其中的AI修改為 Thread之后,嘗試重新執(zhí)行debug代碼。
重新執(zhí)行之后,就可以發(fā)現(xiàn),每一個線程都會進入到斷點當(dāng)中了
每次只會進入到一個線程中
到此這篇關(guān)于IDEA如何對多線程進行debug的示例詳解的文章就介紹到這了,更多相關(guān)IDEA對多線程debug內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實現(xiàn)Excel與HTML互轉(zhuǎn)
Excel是一種電子表格格式,而HTM則是一種用于創(chuàng)建網(wǎng)頁的標(biāo)記語言,雖然兩者在用途上存在差異,但有時我們需要將數(shù)據(jù)從一種格式轉(zhuǎn)換為另一種格式,下面我們就來看看具體實現(xiàn)方法吧2025-01-01Java中的Scanner、BufferedReader?和?StreamTokenizer使用詳解
Scanner是Java?中一個用于解析原始類型(如?int、double?等)和字符串的類,它通常從輸入流中逐個讀取數(shù)據(jù)并進行解析,支持多種分隔符的使用,本文介紹Java中的Scanner、BufferedReader?和?StreamTokenizer的相關(guān)知識,感興趣的朋友一起看看吧2025-02-02SpringBoot啟動時運行特定代碼的多種方式小結(jié)
SpringBoot提供了多種方式在應(yīng)用程序啟動時運行特定的代碼,包括CommandLineRunner、ApplicationRunner、@PostConstruct、InitializingBean、事件機制和自定義注解等,下面就來具體介紹一下2025-01-01SpringBoot整合Spring Security構(gòu)建安全的Web應(yīng)用
pring Security是一個強大的身份驗證和訪問控制框架,本文主要介紹了SpringBoot整合Spring Security構(gòu)建安全的Web應(yīng)用,具有一定的參考價值,感興趣的可以了解一下2024-01-01spring MVC cors跨域?qū)崿F(xiàn)源碼解析
本文主要介紹了spring MVC cors跨域?qū)崿F(xiàn)源碼解析。具有很好的參考價值,下面跟著小編一起來看下吧2017-02-02