測試分布式項目時,經常要一個項目啟動2次,不用将一個項目打開多次啟動,配置一下即可
1.點擊Edit Configurations
2.勾選Allow parallel run
3.依次點擊如下2個按鈕
有如下代碼,隻想讓它在i == 10的情況下停下來
@Test
public void condition() {
for (int i = 0; i < 30; i ) {
System.out.println(i);
}
}
1.鼠标左鍵在行數上加上斷點
2.在斷點上右鍵加上條件
3.點擊Done按鈕
此時斷點上會有問号,表示這是一個條件斷點,右鍵點擊即可查看條件
多線程調試當有多個線程時,我們如何控制線程的執行順序呢?
System.out.println("我是線程1-1");
System.out.println("我是線程2-1");
System.out.println("我是線程1-2");
System.out.println("我是線程2-2");
例如讓線程1和2依次執行如下代碼
System.out.println("我是線程1-1");
System.out.println("我是線程2-1");
System.out.println("我是線程1-2");
System.out.println("我是線程2-2");
普通模式debug模式下是做不到的,因為我們沒辦法控制線程的執行順序。需要做如下設置
1.右鍵點擊斷點,選中Thread(Make Default表示把當前選中的Thread設置為默認值)
設置後的斷點如下,3個斷點都是Thread模式
執行到某個語句想切換線程的時候選中下一步要執行的線程即可
代碼如下
public class User {
private String username;
private Integer age;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
@Test
public void changeValue() {
User user = new User();
user.setUsername("aa");
System.out.println(user.getUsername() " " user.getAge());
}
在輸出語句上加上斷點
在斷點處執行了
user.setAge(10);
最後的輸出結果為
aa 10
我們也可以直接右鍵選中Set Value修改username屬性等
當斷點執行到method2()時,想回退到method1時,點擊如下按鈕即可
需要注意的是,斷點回退隻能重新走一下流程,某些改變了的數據是無法回退到之前的狀态,如對象、集合等等
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!