日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

JDK21 性能提升20倍

來(lái)源: 責(zé)編: 時(shí)間:2023-10-20 10:02:04 273觀看
導(dǎo)讀大家好,我是了不起。JDK21 發(fā)布已經(jīng)過(guò)去1個(gè)月時(shí)間了,除了每次發(fā)版必然更新的GC機(jī)制,和一些增強(qiáng)功能外,還引入了一個(gè)全新的概念——虛擬線程。什么是虛擬線程先來(lái)看一下官方對(duì)虛擬線程(Visual Threads)的描述(已翻譯):如今,JD

大家好,我是了不起。mLX28資訊網(wǎng)——每日最新資訊28at.com

JDK21 發(fā)布已經(jīng)過(guò)去1個(gè)月時(shí)間了,除了每次發(fā)版必然更新的GC機(jī)制,和一些增強(qiáng)功能外,還引入了一個(gè)全新的概念——虛擬線程。mLX28資訊網(wǎng)——每日最新資訊28at.com

什么是虛擬線程

先來(lái)看一下官方對(duì)虛擬線程(Visual Threads)的描述(已翻譯):mLX28資訊網(wǎng)——每日最新資訊28at.com

如今,JDK中java.lang.Thread的每個(gè)實(shí)例都是一個(gè)平臺(tái)線程。平臺(tái)線程在底層操作系統(tǒng)線程上運(yùn)行Java代碼,并在代碼的整個(gè)生命周期中捕獲操作系統(tǒng)線程。平臺(tái)線程的數(shù)量限制為操作系統(tǒng)線程的數(shù)量。mLX28資訊網(wǎng)——每日最新資訊28at.com

虛擬線程是java.lang.thread的一個(gè)實(shí)例,它在底層操作系統(tǒng)線程上運(yùn)行java代碼,但在代碼的整個(gè)生命周期內(nèi)不會(huì)捕獲該操作系統(tǒng)線程。這意味著許多虛擬線程可以在同一個(gè)操作系統(tǒng)線程上運(yùn)行Java代碼,從而有效地共享代碼。mLX28資訊網(wǎng)——每日最新資訊28at.com

雖然平臺(tái)線程獨(dú)占了寶貴的操作系統(tǒng)線程,但虛擬線程卻沒(méi)有。虛擬線程的數(shù)量可以比操作系統(tǒng)線程的數(shù)量大得多。mLX28資訊網(wǎng)——每日最新資訊28at.com

虛擬線程是JDK而不是OS提供的線程的輕量級(jí)實(shí)現(xiàn)。它們是用戶模式線程的一種形式,在其他多線程語(yǔ)言中也很成功(例如Go中的goroutines和Erlang中的processes)。用戶模式線程甚至在早期版本的Java中被稱為“綠色線程”,當(dāng)時(shí)操作系統(tǒng)線程還不成熟和廣泛使用。然而,Java的綠色線程都共享一個(gè)操作系統(tǒng)線程(M:1調(diào)度),并且最終被平臺(tái)線程所超越,后者被實(shí)現(xiàn)為操作系統(tǒng)線程的包裝器(1:1調(diào)度)。虛擬線程采用M:N調(diào)度,其中大量(M)虛擬線程被調(diào)度在少量(N)OS線程上運(yùn)行。mLX28資訊網(wǎng)——每日最新資訊28at.com

簡(jiǎn)而言之,現(xiàn)在我們可以輕松地創(chuàng)建一個(gè)輕量級(jí)的虛擬線程,實(shí)現(xiàn)簡(jiǎn)單性,同時(shí)充分發(fā)揮硬件性能。mLX28資訊網(wǎng)——每日最新資訊28at.com

可以概括為: 輕量、多路復(fù)用、開(kāi)銷(xiāo)極小、異步編程、可移植性mLX28資訊網(wǎng)——每日最新資訊28at.com

測(cè)試

開(kāi)始一個(gè)簡(jiǎn)單的測(cè)試:1萬(wàn)并發(fā)阻塞1秒模仿web連接池,使用Thread.sleep(1) 模擬IO操作需要的時(shí)間。mLX28資訊網(wǎng)——每日最新資訊28at.com

public static void main(String[] args) throws InterruptedException {    long l = System.currentTimeMillis();//    normal();    virtual();    System.out.println(System.currentTimeMillis() - l);}

先使用常規(guī)線程池方式運(yùn)行:mLX28資訊網(wǎng)——每日最新資訊28at.com

public static void normal() throws InterruptedException {    ExecutorService executor = Executors.newFixedThreadPool(200);    for (int i=0; i < 10000; i++) {        executor.execute(() -> {            try {                System.out.println("normal");                Thread.sleep(1000);            } catch (InterruptedException e) {                e.printStackTrace();            }        });    }    executor.shutdown();    executor.awaitTermination(100, java.util.concurrent.TimeUnit.SECONDS);}

得到如下結(jié)果:mLX28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片mLX28資訊網(wǎng)——每日最新資訊28at.com

使用 JDK21 虛擬線程池運(yùn)行:mLX28資訊網(wǎng)——每日最新資訊28at.com

public static void virtual() throws InterruptedException {    ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor();    for (int i=0; i < 10000; i++) {        executor.execute(() -> {            try {                System.out.println("jdk21");                Thread.sleep(1000);            } catch (InterruptedException e) {                e.printStackTrace();            }        });    }    executor.shutdown();    executor.awaitTermination(100, java.util.concurrent.TimeUnit.SECONDS);}

得到如下結(jié)果:mLX28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片mLX28資訊網(wǎng)——每日最新資訊28at.com

20多倍的提速!!!mLX28資訊網(wǎng)——每日最新資訊28at.com

我不理解,但我大受震撼!!!mLX28資訊網(wǎng)——每日最新資訊28at.com

如果有朋友想自己測(cè)試一下虛擬線程,或者JDK21的其他新特性,可以嘗試一下哦~mLX28資訊網(wǎng)——每日最新資訊28at.com

JDK21 官網(wǎng)下載鏈接:https://download.oracle.com/graalvm/21/latest/graalvm-jdk-21_windows-x64_bin.zipmLX28資訊網(wǎng)——每日最新資訊28at.com

目前虛擬線程還屬于預(yù)覽版本,沒(méi)有正式啟用。如果是IDEA 開(kāi)發(fā)工具,在啟動(dòng)的時(shí)候,需要配置VM參數(shù) --enable-previewmLX28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片mLX28資訊網(wǎng)——每日最新資訊28at.com

小結(jié)

經(jīng)過(guò)測(cè)試,在該例子中,Executors.newFixedThreadPool( size ); size的值越大,普通的線程池用時(shí)越短,在線程池的大小開(kāi)放到 10000后,用時(shí)幾乎一樣。mLX28資訊網(wǎng)——每日最新資訊28at.com

應(yīng)該是本例的IO操作是Thread.sleep的緣故,所以不會(huì)占用CPU資源。mLX28資訊網(wǎng)——每日最新資訊28at.com

傳統(tǒng)的線程池,一般我們會(huì)指定核心線程數(shù)量為 CPU核心數(shù)*4,最大線程數(shù)為 CPU核心數(shù)*8,而在虛擬線程池中,不需要指定線程數(shù),JDK會(huì)自動(dòng)根據(jù)資源占用情況,創(chuàng)建合適數(shù)量的線程,追求更高的吞吐量。mLX28資訊網(wǎng)——每日最新資訊28at.com

聽(tīng)說(shuō)springboot3.2.0版本開(kāi)始,springboot要把webflux底層也改成虛擬線程了,不知道以后會(huì)不會(huì)把所有的關(guān)于異步線程的地方都改成虛擬線程。mLX28資訊網(wǎng)——每日最新資訊28at.com

了不起是覺(jué)得這個(gè)虛擬線程真是個(gè)好東西,簡(jiǎn)單易用,再也不糾結(jié)怎么配置線程池,根據(jù)硬件自適應(yīng),效率極高。mLX28資訊網(wǎng)——每日最新資訊28at.com

現(xiàn)在Spring6是基于JDK17的,不知道下個(gè)大版本更新會(huì)不會(huì)直接更新到有虛擬線程穩(wěn)定發(fā)布的JDK版本,期待!mLX28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-14296-0.htmlJDK21 性能提升20倍

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 攜程火車(chē)票異常檢測(cè)和根因定位實(shí)踐

下一篇: 為啥有的ConfigMap要重啟Pod才生效

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
  • Rust中的高吞吐量流處理

    作者 | Noz編譯 | 王瑞平本篇文章主要介紹了Rust中流處理的概念、方法和優(yōu)化。作者不僅介紹了流處理的基本概念以及Rust中常用的流處理庫(kù),還使用這些庫(kù)實(shí)現(xiàn)了一個(gè)流處理程序
  • 為什么你不應(yīng)該使用Div作為可點(diǎn)擊元素

    按鈕是為任何網(wǎng)絡(luò)應(yīng)用程序提供交互性的最常見(jiàn)方式。但我們經(jīng)常傾向于使用其他HTML元素,如 div span 等作為 clickable 元素。但通過(guò)這樣做,我們錯(cuò)過(guò)了許多內(nèi)置瀏覽器的功能。
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時(shí)候了!學(xué)弟,最近學(xué)習(xí)的怎么樣啊 了不起學(xué)弟:最近學(xué)習(xí)的還不錯(cuò),每天都在學(xué)習(xí),每天都在進(jìn)步! 了不起:那你最近學(xué)習(xí)的什么呢? 了不起學(xué)弟:最近在學(xué)習(xí)C
  • 梁柱接棒兩年,騰訊音樂(lè)闖出新路子

    文丨田靜 出品丨牛刀財(cái)經(jīng)(niudaocaijing)7月5日,企鵝FM發(fā)布官方公告稱由于業(yè)務(wù)調(diào)整,將于9月6日正式停止運(yùn)營(yíng),這意味著騰訊音樂(lè)長(zhǎng)音頻業(yè)務(wù)走向消亡。騰訊在長(zhǎng)音頻領(lǐng)域還在摸索。為
  • 阿里大調(diào)整

    來(lái)源:產(chǎn)品劉有媒體報(bào)道稱,近期淘寶天貓集團(tuán)啟動(dòng)了近年來(lái)最大的人力制度改革,涉及員工績(jī)效、層級(jí)體系等多個(gè)核心事項(xiàng),目前已形成一個(gè)初步的&ldquo;征求意見(jiàn)版&rdquo;:1、取消P序列
  • 華為Mate60標(biāo)準(zhǔn)版細(xì)節(jié)曝光:經(jīng)典星環(huán)相機(jī)模組回歸

    這段時(shí)間以來(lái),關(guān)于華為新旗艦的爆料日漸密集。據(jù)此前多方爆料,今年華為將開(kāi)始恢復(fù)一年雙旗艦戰(zhàn)略,除上半年推出的P60系列外,往年下半年的Mate系列也將
  • OPPO K11樣張首曝:千元機(jī)影像“卷”得真不錯(cuò)!

    一直以來(lái),OPPO K系列機(jī)型都保持著較為均衡的產(chǎn)品體驗(yàn),歷來(lái)都是2K價(jià)位的明星機(jī)型,去年推出的OPPO K10和OPPO K10 Pro兩款機(jī)型憑借各自的出色配置,堪稱有
  • 與兆芯合作 聯(lián)想推出全新旗艦版筆記本電腦開(kāi)天N7系列

    聯(lián)想與兆芯合作推出全新聯(lián)想旗艦版筆記本電腦開(kāi)天 N7系列。這個(gè)系列采用兆芯KX-6640MA處理器平臺(tái),KX-6640MA 處理器是采用了陸家嘴架構(gòu),16nm 工藝,4 核 4 線
  • 上海舉辦人工智能大會(huì)活動(dòng),建設(shè)人工智能新高地

    人工智能大會(huì)在上海浦江兩岸隆重拉開(kāi)帷幕,人工智能新技術(shù)、新產(chǎn)品、新應(yīng)用、新理念集中亮相。8月30日晚,作為大會(huì)的特色活動(dòng)之一的上海人工智能發(fā)展盛典人工
Top 主站蜘蛛池模板: 牡丹江市| 黄浦区| 叶城县| 任丘市| 商都县| 明光市| 吉林省| 元氏县| 福海县| 青河县| 阜宁县| 和静县| 邹平县| 霍城县| 界首市| 临沭县| 德阳市| 扬中市| 耒阳市| 安顺市| 丁青县| 霸州市| 玉屏| 博乐市| 拜城县| 靖州| 民和| 紫金县| 称多县| 小金县| 陆川县| 湘潭县| 肥乡县| 永寿县| 灵山县| 万荣县| 雅江县| 巴里| 宽甸| 鹰潭市| 尚志市|