idea debug多线程任务

    在造挡板数据mock的时候遇到了一种场景,就是在调用一个接口a的时候,会异步请求接口b,这样在些挡板数据的时候就对接口b的请求新开了一个线程。

    写的时候都没有遇到什么问题,但是在运行的时候总是拿不到异步返回的数据,所以尝试着debug调试一下,但以前也仅仅是对一个线程进行debug,现在多个debug,还真不会,一番百度谷歌搜索后,终于找到方法,现在分享一下。

    模拟多线程写了个测试类:

 public static void main(String[] args) throws Exception {

        String test = "begin";
        System.out.println(test);

        //线程1
        new Thread("Thread1-Name") {
            @Override
            public void run() {
                System.out.println("Thread1-Name Start");//断点处
                try {
                    Thread.sleep(1000);
                    decryptByPublicKey();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                System.out.println("Thread1-Name end");

            }
        }.start();
        //线程2
        new Thread("Thread2-Name") {
            @Override
            public void run() {
                System.out.println("Thread2-Name Start");//断点处
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("Thread2-Name end");
            }

        }.start();

  
       System.out.println("end");//断点处
    }

右键点击某个断点处的,设置Suspend为Thread,如图:

idea debug多线程任务_第1张图片

然后以debug模型运行,可以在Threads中查看到所有的线程,如下图,有线程1及线程2及main方法

idea debug多线程任务_第2张图片

最后就可以在Frames中选择你要debug的线程(如线程1)进行debug,如下图:

idea debug多线程任务_第3张图片

再选择线程2进行debug,如下图:

idea debug多线程任务_第4张图片

你可能感兴趣的:(工作)