IDEA如何對多線程進行debug

開發中使用到多線程的時候不少,但是debug起來還是比較困難的,因為默認每次只會進入一個線程,這樣有些問題是發現不了的,其實IDEA也是支持進入每個線程來debug的

寫一個簡單的demo

public class ThreadDebug {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 {@Overridepublic void run() {System.out.println(Thread.currentThread().getName() + " running");}
}

?

如果我們多次執行這個代碼,就會發現,每一次打印的結果都不一樣,三個線程的輸出順序是隨機的,并且每一次debug只會進入到一個線程的執行每次執行結果隨機是因為不一定哪個線程可以先獲得CPU時間片

更改debug設置

其實,在IDEA中有一個設置,那就是當我們在斷點處單擊鼠標右鍵就會彈出一個設置對話框,當我們把其中的AI修改為 Thread之后,嘗試重新執行debug代碼。

重新執行之后,就可以發現,每一個線程都會進入到斷點當中了

?

每次只會進入到一個線程中

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/16361.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/16361.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/16361.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c++ set/multiset容器

在C標準庫中,set 和 multiset 是兩種非常有用的關聯容器,它們包含唯一元素(對于set)或可重復元素(對于multiset),并且默認情況下這些元素都是自動排序的。它們通過鍵(即存儲的元素本…

異方差的Stata操作(計量114)

以數據集 nerlove.dta 為例,演示如何在 Stata 中處理異方差。 此數據集包括以下變量: tc ( 總成本 ) ; q ( 總產量 ) ; pl ( 工資率 ) ; pk ( 資本的使用成本 ) ; pf ( 燃料價格 ) ; …

GESP等級大綱

CCF編程能力等級認證概述 CCF編程能力等級認證(GESP)為青少年計算機和編程學習者提供學業能力驗證的規則和平臺。GESP覆蓋中小學階段,符合年齡條件的青少年均可參加認證。C & Python編程測試劃分為一至八級,通過設定不同等級…

[自動駕駛技術]-6 Tesla自動駕駛方案之硬件(AI Day 2021)

1 硬件集成 特斯拉自動駕駛數據標注過程中,跨250萬個clips超過100億的標注數據,無論是自動標注還是模型訓練都要求具備強大的計算能力的硬件。下圖是特斯拉FSD計算平臺硬件電路圖。 1)神經網絡編譯器 特斯拉AI編譯器主要針對PyTorch框架&am…

AI數據面臨枯竭

Alexandr Wang:前沿研究領域需要大量當前不存在的數據,未來會受到這個限制 Alexandr Wang 強調了 AI 領域面臨的數據問題。 他指出,前沿研究領域(如多模態、多語言、專家鏈式思維和企業工作流)需要大量當前不存在的數…

壓縮能力登頂 小丸工具箱 V1.0 綠色便攜版

平常錄制視頻或下載保存的視頻時長往往都很長,很多時候都想要裁剪、 截取出一些“精華片段”保留下來,而不必保存一整個大型視頻那么浪費硬盤空間… 但如今手機或電腦上大多數的視頻剪輯軟件,切割視頻一般都要等待很長時間導出或轉換&#…

【C語言回顧】編譯和鏈接

前言1. 編譯2. 鏈接結語 上期回顧: 【C語言回顧】文件操作 個人主頁:C_GUIQU 歸屬專欄:【C語言學習】 前言 各位小伙伴大家好!上期小編給大家講解了C語言中的文件操作,接下來我們講解一下編譯和鏈接! 1. 編譯 預處理…

H5掃描二維碼相關實現

H5 Web網頁實現掃一掃識別解析二維碼,就現在方法的npm包就能實現,在這個過程中使用過html5-qrcode 和 vue3-qr-reader。 1、html5-qrcode的使用 感覺html5-qrcode有點小坑,在使用的時候識別不成功還總是進入到錯誤回調中出現類似NotFoundExc…

Python怎樣將PDF拆分成多個文件

在 Python 中,你可以使用 PyPDF2 庫來拆分 PDF 文件。以下是一個簡單的示例,演示如何將一個 PDF 文件拆分為多個單頁 PDF 文件。 首先,你需要安裝 PyPDF2 庫。如果尚未安裝,可以使用以下命令進行安裝: pip install P…

天干物燥小心火燭-智慧消防可視化大屏,隱患防治于未然。

智慧消防可視化大屏通常包括以下內容: 1.實時監控: 顯示消防設備、傳感器、監控攝像頭等設備的實時狀態和數據,包括火災報警、煙霧報警、溫度報警等。 2.建筑結構: 顯示建筑物的結構圖和平面圖,包括樓層分布、消防通…

VLC播放器(全稱VideoLAN Client)

一、簡介 VLC播放器(全稱VideoLAN Client)是一款開源的多媒體播放器,由VideoLAN項目團隊開發。它支持多種音視頻格式,并能夠在多種操作系統上運行,如Windows、Mac OS X、Linux、Android和iOS等。VLC播放器具備播放文件…

特殊變量筆記3

輸入一個錯誤命令, 在輸出$? 特殊變量:$$ 語法 $$含義 用于獲取當前Shell環境的進程ID號 演示 查看當前Shell環境進程編號 ps -aux|grep bash輸出 $$ 顯示當前shell環境進程編號 小結 常用的特殊符號變量如下 特殊變量含義$n獲取輸入參數的$0, 獲取當前She…

hugging face筆記:PEFT

1 介紹 PEFT (Parameter-Efficient Fine Tuning) 方法在微調時凍結預訓練模型參數,并在其上添加少量可訓練的參數(稱為適配器)這些適配器被訓練用來學習特定任務的信息。這種方法已被證明在內存效率和計算使用上非常高效,同時能產…

線性模型--普通最小二乘法

線性模型 一、模型介紹二、用于回歸的線性模型2.1 線性回歸(普通最小二乘法) 一、模型介紹 線性模型是在實踐中廣泛使用的一類模型,該模型利用輸入特征的線性函數進行預測。 二、用于回歸的線性模型 以下代碼可以在一維wave數據集上學習參…

基于51單片機的超聲波液位測量與控制系統

基于51單片機液位控制器 (仿真+程序+原理圖PCB+設計報告) 功能介紹 具體功能: 1.使用HC-SR04測量液位,LCD1602顯示; 2.當水位高于設定上限的時候,對應聲光報警報警&am…

手機卡該地塊

package demo; package demo; public class Phonetest { public static void main(String[] args) { Phone pnew Phone(); p.brand"小米"; p.price1998.98; System.out.println(…

在業務開發中使用ElasticSearch的指導手冊

文章目錄 該業務為什么需要ElasticSearch? / 該業務需要ElasticSearch的核心功能是哪些?正確示例錯誤示例 如何快速驗證分詞是否能夠滿足業務需求?分詞不滿足,如何自定義分詞? 業務數據的字段類型映射是否合理?實踐中…

MySQL設置表自增步長

在MySQL數據庫管理中,自增字段(AUTO_INCREMENT)是一種常見且重要的功能,通常用于生成唯一的標識符(如主鍵)。然而,在多種應用場景下,默認的自增步長(1)可能無…

【InternLM實戰營第二期筆記】02:大模型全鏈路開源體系與趣味demo

文章目錄 00 環境設置01 部署一個 chat 小模型02 Lagent 運行 InternLM2-chat-7B03 浦語靈筆2 第二節課程視頻與文檔: https://www.bilibili.com/video/BV1AH4y1H78d/ https://github.com/InternLM/Tutorial/blob/camp2/helloworld/hello_world.md 視頻和文檔內容基…