問題現象:
在IntelliJ IDEA執行簡單的main方法,調用Thread.activeCount()方法輸出的數量為2,而非預期的1(main方法本身).
而直接適用java命令行執行或者eclipse執行卻沒有這個問題。
問題分析:
用如下方法打印當前線程組中的線程:
Thread.currentThread().getThreadGroup().list();
結果如下:
java.lang.ThreadGroup[name=main,maxpri=10]
Thread[main,5,main]
Thread[Monitor Ctrl-Break,5,main]
問題原因:
IntelliJ IDEA執行用戶代碼的時候,實際是通過反射方式去調用,而與此同時會創建一個Monitor Ctrl-Break 用於監控目的。
