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

當前位置:首頁 > 科技  > 軟件

網易面試:SpringBoot如何開啟虛擬線程?

來源: 責編: 時間:2024-06-12 08:44:59 223觀看
導讀虛擬線程(Virtual Thread)也稱協程或纖程,是一種輕量級的線程實現,與傳統的線程以及操作系統級別的線程(也稱為平臺線程)相比,它的創建開銷更小、資源利用率更高,是 Java 并發編程領域的一項重要創新。PS:虛擬線程正式發布于 J

vaF28資訊網——每日最新資訊28at.com

虛擬線程(Virtual Thread)也稱協程或纖程,是一種輕量級的線程實現,與傳統的線程以及操作系統級別的線程(也稱為平臺線程)相比,它的創建開銷更小、資源利用率更高,是 Java 并發編程領域的一項重要創新。vaF28資訊網——每日最新資訊28at.com

PS:虛擬線程正式發布于 Java 長期支持版(Long Term Suort,LTS)Java 21(也就是 JDK 21)。vaF28資訊網——每日最新資訊28at.com

虛擬線程是一種在 Java 虛擬機(JVM)層面實現的邏輯線程,不直接和操作系統的物理線程一一對應,因此它可以減少上下文切換所帶來的性能開銷。vaF28資訊網——每日最新資訊28at.com

操作系統線程、普通線程(Java 線程)和虛擬線程的關系如下:vaF28資訊網——每日最新資訊28at.com

vaF28資訊網——每日最新資訊28at.com

1.虛擬線程使用

虛擬線程的創建有以下 4 種方式:vaF28資訊網——每日最新資訊28at.com

  • Thread.startVirtualThread(Runnable task)
  • Thread.ofVirtual().unstarted(Runnable task)
  • Thread.ofVirtual().factory()
  • Executors.newVirtualThreadPerTaskExecutor()

具體使用如下。vaF28資訊網——每日最新資訊28at.com

(1)startVirtualThread

創建虛擬線程,并直接啟動執行任務:vaF28資訊網——每日最新資訊28at.com

// 創建并啟動虛擬線程Thread.startVirtualThread(() -> {    System.out.println("Do virtual thread.");});

(2)unstarted

只創建虛擬線程,但不直接啟動(創建之后通過 start 啟動):vaF28資訊網——每日最新資訊28at.com

// 創建虛擬線程Thread vt = Thread.ofVirtual().unstarted(()->{    System.out.println("Do virtual thread.");});// 運行虛擬線程vt.start();

(3)factory

先創建虛擬線程工廠,然后再使用工廠創建虛擬線程,之后再調用 start() 方法進行執行:vaF28資訊網——每日最新資訊28at.com

// 創建虛擬線程工廠ThreadFactory tf = Thread.ofVirtual().factory();// 創建虛擬線程Thread vt = tf.newThread(()->{    System.out.println("Do virtual thread.");});// 運行虛擬線程vt.start();

(4)newVirtualThreadPerTaskExecutor

創建虛擬線程池:vaF28資訊網——每日最新資訊28at.com

// 創建一個支持虛擬線程的線程池ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor();executor.submit(()->{    System.out.println("Do virtual thread.");});

2.虛擬線程 VS 普通線程

虛擬線程和普通線程的區別主要體現在以下幾點:vaF28資訊網——每日最新資訊28at.com

  • 普通線程是和操作系統的物理線程是一一對應的,而虛擬線程是 JVM 層面的邏輯線程,并不和操作系統的物理線程一一對應,它可以看作是輕量級的線程。
  • 普通線程默認創建的是用戶線程(而守護線程),而虛擬線程是守護線程,并且其守護線程的屬性不能被修改,如果修改就會報錯,如下圖所示:

vaF28資訊網——每日最新資訊28at.com

  • 虛擬線程由 JVM 調度和使用,避免了普通線程頻繁切換的性能開銷,所以相比于普通的線程來說,運行效率更高。

3.SpringBoot開啟虛擬線程

以最新版的 Spring Boot 3.x 為例,我們開啟虛擬線程很簡單,只需要在 Spring Boot 配置文件中設置“spring.threads.virtual.enabled”為“true”即可開啟,以 application.yml 為例,啟用虛擬線程配置如下:vaF28資訊網——每日最新資訊28at.com

spring:  threads:    virtual:      enabled: true # 啟用虛擬線程

這樣 Spinrg Boot 在啟動 Tomcat 容器時,會使用一個虛擬線程執行器來代表原有的平臺線程池。vaF28資訊網——每日最新資訊28at.com

PS:這里是虛擬線程執行器,不是虛擬線程池。vaF28資訊網——每日最新資訊28at.com

如果以上配置未生效的話,還可以通過修改 Tomcat 配置類,讓其使用虛擬線程來處理每一個請求,配置代碼如下:vaF28資訊網——每日最新資訊28at.com

import java.util.concurrent.Executors;import org.springframework.boot.web.embedded.tomcat.TomcatProtocolHandlerCustomizer;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class TomcatConfiguration {    @Bean    public TomcatProtocolHandlerCustomizer<?> protocolHandlerVirtualThreadExecutorCustomizer() {        return protocolHandler -> {            // 使用虛擬線程來處理每一個請求            protocolHandler.setExecutor(Executors.newVirtualThreadPerTaskExecutor());        };    }}

4.異步任務開啟虛擬線程

如果你想為 Spring Boot 中的異步任務 @Async 也配置虛擬線程的話,可以在 AsyncConfigurer 配置類中設置,配置代碼如下:vaF28資訊網——每日最新資訊28at.com

import java.util.concurrent.Executor;import java.util.concurrent.Executors;import org.springframework.context.annotation.Configuration;import org.springframework.core.task.support.TaskExecutorAdapter;import org.springframework.scheduling.annotation.AsyncConfigurer;import org.springframework.scheduling.annotation.EnableAsync;@Configuration@EnableAsync  // 開啟異步任務public class AsyncTaskConfiguration implements AsyncConfigurer {    @Override    public Executor getAsyncExecutor() {        return new TaskExecutorAdapter(Executors.newThreadPerTaskExecutor(Thread.ofVirtual().name("virtual-async#", 1).factory()));    }}

本文鏈接:http://m.www897cc.com/showinfo-26-93207-0.html網易面試:SpringBoot如何開啟虛擬線程?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 警惕!SpringBoot錯誤發布事件,造成死鎖Deadlock

下一篇: 前端JS發起的請求能暫停嗎?

標簽:
  • 熱門焦點
  • 6月安卓手機性價比榜:Note 12 Turbo斷層式碾壓

    6月份有一個618,雖然這是京東周年慶的日子,但別的電商也都不約而同的跟進了,反正促銷沒壞處,廠商和用戶都能滿意。618期間一些產品也出現了歷史低價,那么各個價位段的產品性價比
  • 8月總票房已突破10億!《封神》第一:口碑已經成了

    8月5日消息,據燈塔專業版數據,截至8月5日9時35分,8月總票房(含預售)已突破10億。其中,《封神》以大比分的優勢領先。根據官方消息,目前該片總票房已經超過14.
  • 0糖0卡0脂 旭日森林仙草烏龍茶優惠:15瓶到手29元

    旭日森林無糖仙草烏龍茶510ml*15瓶平時要賣為79.9元,今日下單領取50元優惠券,到手價為29.9元。產品規格:0糖0卡0脂,添加草本仙草汁,清涼爽口,富含茶多酚,保留
  • 掘力計劃第 20 期:Flutter 混合開發的混亂之治

    在掘力計劃系列活動第20場,《Flutter 開發實戰詳解》作者,掘金優秀作者,Github GSY 系列目負責人戀貓的小郭分享了Flutter 混合開發的混亂之治。Flutter 基于自研的 Skia 引擎
  • 量化指標是與非:挽救被量化指標扼殺的技術團隊

    作者 | 劉新翠整理 | 徐杰承本文整理自快狗打車技術總監劉新翠在WOT2023大會上的主題分享,更多精彩內容及現場PPT,請關注51CTO技術棧公眾號,發消息【WOT2023PPT】即可直接領取
  • JavaScript學習 -AES加密算法

    引言在當今數字化時代,前端應用程序扮演著重要角色,用戶的敏感數據經常在前端進行加密和解密操作。然而,這樣的操作在網絡傳輸和存儲中可能會受到惡意攻擊的威脅。為了確保數據
  • 一文掌握 Golang 模糊測試(Fuzz Testing)

    模糊測試(Fuzz Testing)模糊測試(Fuzz Testing)是通過向目標系統提供非預期的輸入并監視異常結果來發現軟件漏洞的方法。可以用來發現應用程序、操作系統和網絡協議等中的漏洞或
  • Python異步IO編程的進程/線程通信實現

    這篇文章再講3種方式,同時講4中進程間通信的方式一、 Python 中線程間通信的實現方式共享變量共享變量是多個線程可以共同訪問的變量。在Python中,可以使用threading模塊中的L
  • iQOO Neo8系列今日官宣:首發天璣9200+ 全球安卓最強芯!

    在昨日舉行的的聯發科新一代旗艦芯片天璣9200+的發布會上,iQOO官方也正式宣布,全新的iQOO Neo8系列新品將全球首發搭載這款當前性能最強大的移動平臺
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
欧美三区在线| 久久精品一区二区三区中文字幕| 一本色道久久88综合日韩精品| 国产精品久久久久久影院8一贰佰| 久久精品夜夜夜夜久久| 亚洲精品国产精品乱码不99| 国内精品美女在线观看| 欧美日韩三区| 久久亚洲国产成人| 亚洲一区二区三区免费视频| 亚洲激情在线| 狠狠爱成人网| 国产精品视频xxxx| 欧美日韩国产精品成人| 麻豆国产精品777777在线| 性欧美xxxx大乳国产app| 99精品国产热久久91蜜凸| 亚洲精品欧洲| 亚洲欧洲中文日韩久久av乱码| 在线精品视频免费观看| 国产一区二区高清| 国产老肥熟一区二区三区| 欧美视频在线一区二区三区| 国产一区二区三区四区三区四| 亚洲精品乱码久久久久久蜜桃91| 亚洲欧美日韩在线不卡| 亚洲欧美另类在线| 蜜臀久久久99精品久久久久久 | 国产精品欧美日韩久久| 欧美日韩亚洲一区三区| 国产日韩一区二区三区| 国产日韩欧美另类| 亚洲精选成人| 日韩午夜三级在线| aa亚洲婷婷| 中文欧美在线视频| 亚洲一区二区免费在线| 亚洲香蕉伊综合在人在线视看| 久久久夜夜夜| 女人天堂亚洲aⅴ在线观看| 欧美91大片| 国产一级揄自揄精品视频| 一本久久综合亚洲鲁鲁| 美女91精品| 国产欧美日韩视频一区二区| 国产欧美一区二区三区沐欲| 国产婷婷成人久久av免费高清| 国产自产女人91一区在线观看| 在线免费观看日本一区| 亚洲日本一区二区| 亚洲一区999| 欧美激情自拍| 国产精品久久午夜夜伦鲁鲁| 国产精品永久免费在线| 在线观看精品一区| 亚洲精品中文字| 久久综合久久美利坚合众国| 欧美大片在线影院| 欧美性视频网站| 国产一区二区三区高清| 亚洲一区二区日本| 久久久精品网| 女同一区二区| 国产精品久久久久7777婷婷| 国产一区二区三区在线观看免费 | 欧美在线三级| 欧美精品www| 国产精品一区三区| 精品成人在线观看| 在线亚洲欧美视频| 欧美一区二区三区四区在线| 久久一区视频| 欧美视频日韩视频| 狠狠爱www人成狠狠爱综合网| 性xx色xx综合久久久xx| 欧美粗暴jizz性欧美20| 在线精品亚洲一区二区| 夜夜嗨av一区二区三区中文字幕 | 亚洲第一精品福利| 久久综合伊人| 国产精品久久久久永久免费观看| 99在线精品视频在线观看| 性感少妇一区| 国产精品网站一区| 亚洲欧美综合国产精品一区| 欧美成人一区二区| 亚洲国产精品久久久久秋霞影院| 亚洲欧美精品中文字幕在线| 国产精品视频观看| 亚欧美中日韩视频| 国产午夜精品理论片a级大结局 | 欧美精品一区二区三区在线播放| 国产精品视频yy9099| 亚洲理论电影网| 久久久精品性| 狠狠色丁香久久综合频道| 久久亚洲精品网站| 亚洲国产成人精品女人久久久| 亚洲欧美日韩在线综合| 国产精品综合| 久久久久久综合网天天| 国产精品地址| 亚洲精品日韩在线观看| 久久美女性网| 亚洲高清久久久| 欧美精品首页| 亚洲视频在线观看| 欧美精品成人一区二区在线观看| 亚洲免费高清视频| 鲁大师影院一区二区三区| 国产欧美一区二区精品仙草咪| 一区二区三区成人精品| 麻豆成人综合网| 好看的日韩视频| 性色av一区二区三区红粉影视| 国产婷婷成人久久av免费高清| 久久亚洲一区二区三区四区| 亚洲黑丝一区二区| 嫩草影视亚洲| 亚洲视频中文| 国产在线麻豆精品观看| 欧美精品不卡| 午夜视黄欧洲亚洲| 亚洲成人直播| 欧美性视频网站| 久久久久久综合网天天| 黄色亚洲网站| 久久精品亚洲精品国产欧美kt∨| 91久久精品网| 欧美国产精品va在线观看| 亚洲高清在线观看| 久久国产直播| 国内精品**久久毛片app| 欧美夜福利tv在线| 国产欧美一区二区色老头| 亚洲免费视频网站| 欧美视频在线看| 亚洲视频一区二区在线观看| 欧美日韩综合在线免费观看| 欧美在线日韩在线| 韩国av一区二区三区四区| 欧美激情一区在线| 99在线|亚洲一区二区| 国产亚洲精品一区二区| 欧美精品一区二区三区一线天视频 | 在线亚洲精品| 国产精品老女人精品视频| 久热精品在线| 午夜欧美精品| 亚洲精品小视频| 韩国一区二区三区美女美女秀| 久久在线免费观看视频| 欧美特黄a级高清免费大片a级| 亚洲精品一级| 国产亚洲一区精品| 欧美性做爰毛片| 欧美精品久久久久久久久久| 欧美一区三区二区在线观看| av成人动漫| 亚洲第一精品在线| 国产欧美一区二区三区在线看蜜臀 | 欧美乱大交xxxxx| 亚洲一区二区在线免费观看视频| 国产欧美日韩综合一区在线观看| 欧美成人精品h版在线观看| 欧美在线视屏| 亚洲欧洲一区二区在线播放| 欧美视频中文一区二区三区在线观看 | 中日韩午夜理伦电影免费| 影音先锋亚洲电影| 国产欧美一区二区视频| 国产精品福利在线| 久久精品国产久精国产爱| 亚洲黄色成人久久久| 国产精品亚洲综合一区在线观看| 欧美日韩国产限制| 午夜精品网站| 亚洲黄色有码视频| 一区二区亚洲精品国产| 欧美日韩精品| 欧美精品一区视频| 欧美不卡视频| 亚洲一区二区三区免费视频| 亚洲精品在线观| 91久久久一线二线三线品牌| 伊伊综合在线| 一区国产精品| 欧美性天天影院| 欧美视频在线观看| 欧美另类videos死尸| 欧美在线中文字幕| 亚洲理论在线观看| 亚洲国产女人aaa毛片在线| 一区二区三区在线免费播放| 国产一区二区三区在线播放免费观看| 国产乱肥老妇国产一区二| 国产精品美女一区二区| 国产精品美女在线| 国产精品日产欧美久久久久| 国产精品捆绑调教| 国产精品一区二区久久精品| 国产精品一区久久| 国产精品一区二区视频| 国产日韩欧美一区在线|