问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Idea多线程调试

创作时间:
作者:
@小白创作中心

Idea多线程调试

引用
CSDN
1.
https://blog.csdn.net/Fireworkit/article/details/139625246

在 IntelliJ IDEA 中调试多线程应用程序可能会有些复杂,因为多个线程可能会同时运行和交互。不过,IDEA 提供了一些强大的工具来帮助你进行多线程调试。以下是一些关键步骤和技巧,帮助你有效地调试多线程应用程序:

创建一个示例多线程应用程序

首先,让我们创建一个简单的 Java 多线程应用程序作为示例:

package com.lc.concurrency.multithreading;

/**
 * @author lc
 * @date 2024/6/12
 */
public class ThreadTest1 {
    public static void main(String[] args) {
        MyThread myThread = new MyThread();
        Thread thread1 = new Thread(myThread, "Thread 1");
        Thread thread2 = new Thread(myThread, "Thread 2");
        Thread thread3 = new Thread(myThread, "Thread 3");
        thread1.start();
        thread2.start();
        thread3.start();
    }
}

class MyThread implements Runnable {
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName() + ": is running");
    }
}

最重要的就是控制两个线程的执行顺序,我们要做的其实就是当另一个不处于调试状态的线程命中断点后,能先暂停,一直等到我去处理为止。经过一番折腾后发现,其实Idea提供了这个功能,在断点处右键

在IDEA中有一个设置,那就是当我们在断点处单击鼠标右键就会弹出一个设置对话框,当我们把其中的All 修改为 Thread之后,尝试重新执行debug代码,每一个线程都会进入到断点当中了。就实现了对多线程进行debug

使用 Debug 窗口

当应用程序在断点处暂停时,你将看到 IDEA 下方弹出 Debug 窗口。这个窗口提供了多个标签和信息:

  • Frames:显示当前线程的调用栈。
  • Variables:显示当前作用域内的变量。
  • Watches:允许你手动添加表达式以便监视其值。
  • Threads:显示所有活动线程。你可以选择不同的线程查看其状态和调用栈。

切换和管理线程

在 Debug 窗口的 Threads 标签中,你可以看到所有正在运行的线程。双击某个线程可以查看其调用栈和当前执行位置。你还可以右键点击线程来挂起或恢复它们。

操作步骤

  1. 在断点上【右键】选Thread。
  2. 开三个线程发送请求(可以从画面上,分别使用三个用户发请求)。
  3. 切换线程执行。点击Debugger最右侧小方块按钮,选择要切换的线程。
  4. 想执行哪个线程就点F9执行即可。执行完一个线程,会自动切换到另一个线程,继续F9执行即可。


点击下来列表选择●的线程。线程1切换线程2


执行完一个线程,会自动切换到另一个线程,继续F9执行即可。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号