亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

idea中斷點類型之All和Thread的區(qū)別介紹

 更新時間:2022年03月17日 16:38:06   作者:我叫985  
使用all模式對于程序中含有多個線程來說,會將多個線程都阻塞在斷點,此時所有的線程都執(zhí)行到此處,在最后一個線程執(zhí)行到此處是會發(fā)生暫停,在這之前的線程會繼續(xù)執(zhí)行到任意位置,本文給大家詳細介紹下idea中斷點類型之All和Thread的區(qū)別,感興趣的朋友一起看看吧

All模式

  •  所有的線程都要在當前位置被阻塞,誰先來就先阻塞誰,發(fā)生阻塞時其他的線程當前時刻執(zhí)行到哪里就在哪里進行原地等待。
  • 如果此時按下一步F6,那所有的線程都通過阻塞代碼如果此時按恢復程序運行F8,那么當前線程通過阻塞代碼,等待下一個線程的到來,也是誰先來阻塞誰,發(fā)生阻塞時其他的線程當前時刻執(zhí)行到哪里就在哪里進行原地等待。
public class ThreadAndAllBreakApplication {

    public static void main(String[] args) {
        ThreadTest thread1 = new ThreadTest();
        thread1.setName("線程A");
        thread1.start();
        ThreadTest thread2 = new ThreadTest();
        thread2.setName("線程B");
        thread2.start();
        ThreadTest thread3 = new ThreadTest();
        thread3.setName("線程C");
        thread3.start();
    }
}
class ThreadTest extends Thread {
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName() + ": 1");
        try {
            long millis = RandomUtil.randomLong(100, 500);
            System.out.println(Thread.currentThread().getName() + "睡眠: " + millis);
            Thread.sleep(millis);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(Thread.currentThread().getName() + ": 2");
        System.out.println(Thread.currentThread().getName() + ": 3");
        System.out.println(Thread.currentThread().getName() + ": 設置斷點的前一行代碼"); // 當前行設置斷點
        System.out.println(Thread.currentThread().getName() + ": 4");
        System.out.println(Thread.currentThread().getName() + ": end");

線程A: 1
線程C: 1
線程B: 1
線程C睡眠: 283
線程A睡眠: 340
線程B睡眠: 127
線程B: 2
線程B: 3
線程B: 設置斷點的前一行代碼 // B來到了這里,此時其他線程A、B在原地等待,即A、B都在睡眠。
線程A: 2 // A之前執(zhí)行到睡眠,現(xiàn)在執(zhí)行2
線程A: 3
線程A: 設置斷點的前一行代碼 // A來到了這里,此時其他線程B、C在原地等待
線程C: 2 // c之前執(zhí)行到睡眠,現(xiàn)在執(zhí)行2
線程C: 3
線程A: 4
線程B: 4
線程A: end
線程C: 設置斷點的前一行代碼 // C來到了這里,如果不放行斷點,B一直也不會輸出end,會在原地等待(這里證明了當某個線程被All斷點阻塞后,其他線程會在原地等待)
線程B: end
線程C: 4
線程C: end

Thread模式

所有的線程都會運行到斷點處然后阻塞

  • 如果此時按下一步F6,那當前的線程都通過阻塞代碼,其他線程不動。
  • 如果此時按恢復程序運行F8,那么當前線程通過阻塞代碼,并自動切換到下一個阻塞線程進行調試。

在這里插入圖片描述

到此這篇關于idea中斷點類型:All和Thread的區(qū)別的文章就介紹到這了,更多相關idea 斷點All和Thread內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java經(jīng)典面試題之NIO多路復用

    Java經(jīng)典面試題之NIO多路復用

    JAVA?NIO?的多路復用是面試中經(jīng)常被問的問題,今天我們徹底搞明白究竟是怎么回事,文中的示例代碼講解詳細,希望對大家學習Java有所幫助
    2023-06-06
  • Spring Bean作用域與生命周期深入講解

    Spring Bean作用域與生命周期深入講解

    這篇文章主要介紹了淺談Spring中Bean的作用域,生命周期和注解,從創(chuàng)建到消亡的完整過程,例如人從出生到死亡的整個過程就是一個生命周期。本文將通過示例為大家詳細講講,感興趣的可以學習一下
    2022-07-07
  • java中的executeQuery()方法使用

    java中的executeQuery()方法使用

    這篇文章主要介紹了java中的executeQuery()方法使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Mac中IntelliJ IDEA 2019.1注冊過程分享

    Mac中IntelliJ IDEA 2019.1注冊過程分享

    這篇文章主要介紹了Mac中IntelliJ IDEA 2019.1注冊過程,本文給大家分享到腳本之家平臺供大家學習,需要的朋友可以參考下
    2020-02-02
  • Spring一步到位精通攔截器

    Spring一步到位精通攔截器

    攔截器(Interceptor)是一種動態(tài)攔截方法調用的機制,在SpringMVC中動態(tài)攔截控制器方法的執(zhí)行。本文將詳細講講SpringMVC中攔截器的概念及入門案例,感興趣的可以嘗試一下
    2023-01-01
  • idea如何關閉右側類顯示方法

    idea如何關閉右側類顯示方法

    這篇文章主要介紹了idea如何關閉右側類顯示方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • java Date裝成英文String后,無法再轉回Date的解決方案

    java Date裝成英文String后,無法再轉回Date的解決方案

    本文介紹了java Date裝成英文String后,無法再轉回Date的解決方案。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • Java利用ip2region實現(xiàn)獲取IP地址詳情

    Java利用ip2region實現(xiàn)獲取IP地址詳情

    ip2region是一個離線IP地址定位庫和IP定位數(shù)據(jù)管理框架,10微秒級別的查詢效率,提供了眾多主流編程語言的?xdb?數(shù)據(jù)生成和查詢客戶端實現(xiàn)。本文將利用ip2region實現(xiàn)獲取IP地址詳情,感興趣的可以了解一下
    2022-07-07
  • SpringBoot中的Future接口詳解

    SpringBoot中的Future接口詳解

    這篇文章主要介紹了SpringBoot中的Future接口詳解,在異步編程中,我們通常需要處理一些耗時的操作,一種常見的做法是使用 Future 接口來代表一個異步操作的結果,需要的朋友可以參考下
    2023-07-07
  • Java中的Null到底是什么

    Java中的Null到底是什么

    null是沒有地址,""是有地址但是里面的內容是空的,好比做飯 null說明連鍋都沒有 而""則是有鍋沒米,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,下面我們來詳細學習一下它吧
    2019-06-06

最新評論