我想如下運行具有斷點下面的代碼:的IntelliJ - 沒有停止對多線程代碼中的所有斷點
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Starting"); //breakpoint here
}
}).start();
int i = 10;
i++; //breakpoint here
運行此代碼時只有I ++斷點被擊中......如果我刪除那一個,另一個線程的斷點將被正確命中。爲什麼這種奇怪的行爲發生?
我個人認爲這是一個競賽條件。在我的情況*恢復*仍然**沒有**觸發新線程的斷點。解決問題的唯一方法是在開始新線程之前不要分手。然後這一切正常。 – kervin 2015-07-30 01:45:44
是否將斷點上的暫停策略設置爲「全部」(而不是「線索」)? – 2015-07-30 11:33:03
是的,他們都是。我可以簡單地通過將斷點從線程起點移近或更遠來觸發該問題,以便單獨確認某種競爭條件。 – kervin 2015-07-30 12:34:27