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),每一次打印的結果都不一樣,三個線程的輸出順序是隨機的,并且每一次debug只會進入到一個線程的執(zhí)行每次執(zhí)行結果隨機是因為不一定哪個線程可以先獲得CPU時間片
更改debug設置
其實,在IDEA中有一個設置,那就是當我們在斷點處單擊鼠標右鍵就會彈出一個設置對話框,當我們把其中的AI修改為 Thread之后,嘗試重新執(zhí)行debug代碼。

重新執(zhí)行之后,就可以發(fā)現(xiàn),每一個線程都會進入到斷點當中了

每次只會進入到一個線程中
到此這篇關于IDEA如何對多線程進行debug的示例詳解的文章就介紹到這了,更多相關IDEA對多線程debug內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java中的Scanner、BufferedReader?和?StreamTokenizer使用詳解
Scanner是Java?中一個用于解析原始類型(如?int、double?等)和字符串的類,它通常從輸入流中逐個讀取數(shù)據(jù)并進行解析,支持多種分隔符的使用,本文介紹Java中的Scanner、BufferedReader?和?StreamTokenizer的相關知識,感興趣的朋友一起看看吧2025-02-02
SpringBoot整合Spring Security構建安全的Web應用
pring Security是一個強大的身份驗證和訪問控制框架,本文主要介紹了SpringBoot整合Spring Security構建安全的Web應用,具有一定的參考價值,感興趣的可以了解一下2024-01-01

