测试分布式项目时,常常要一个项目启动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