測試分佈式項目時,常常要一個項目啓動2次,不用將一個項目打開屢次啓動,配置一下便可html
1.點擊Edit Configurations
2.勾選Allow parallel run
3.依次點擊以下2個按鈕
java
有以下代碼,只想讓它在i == 10的狀況下停下來多線程
@Test public void condition() { for (int i = 0; i < 30; i++) { System.out.println(i); } }
1.鼠標左鍵在行數上加上斷點
2.在斷點上右鍵加上條件
3.點擊Done按鈕
此時斷點上會有問號,表示這是一個條件斷點,右鍵點擊便可查看條件
分佈式
當有多個線程時,咱們如何控制線程的執行順序呢?ide
@Test public void thread() { new Thread(() -> { System.out.println("我是線程1-1"); System.out.println("我是線程1-2"); System.out.println("我是線程1-3"); }, "線程1").start(); new Thread(() -> { System.out.println("我是線程2-1"); System.out.println("我是線程2-2"); System.out.println("我是線程2-3"); }, "線程2").start(); System.out.println("主線程"); }
例如讓線程1和2依次執行以下代碼測試
System.out.println("我是線程1-1"); System.out.println("我是線程2-1"); System.out.println("我是線程1-2"); System.out.println("我是線程2-2");
普通模式debug模式下是作不到的,由於咱們沒辦法控制線程的執行順序。須要作以下設置this
1.右鍵點擊斷點,選中Thread(Make Default表示把當前選中的Thread設置爲默認值)
設置後的斷點以下,3個斷點都是Thread模式
執行到某個語句想切換線程的時候選中下一步要執行的線程便可
idea
代碼以下線程
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()); }
在輸出語句上加上斷點
在斷點處執行了debug
user.setAge(10);
最後的輸出結果爲
aa 10
咱們也能夠直接右鍵選中Set Value修改username屬性等
當斷點執行到method2()時,想回退到method1時,點擊以下按鈕便可
須要注意的是,斷點回退只能從新走一下流程,某些改變了的數據是沒法回退到以前的狀態,如對象、集合等等
關注回覆 pdf目錄 有驚喜,海量視頻資源訪問 www.erlie.cc
[1]https://www.cnblogs.com/jun1019/p/9741224.html [2]https://www.cnblogs.com/chiangchou/p/idea-debug.html