成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:談談你對虛擬線程的理解?

開發 前端
線程是輕量級的進程,而虛擬線程則是輕量級的線程,虛擬線程是 JVM 層面實現的邏輯線程,不直接和操作系統的物理線程一一對應,因此使用它可以減少線程上下文切換所帶來的性能開銷。
Java 中的虛擬線程,也叫做協程或“輕量級線程”,它誕生于 JDK 19(預覽 API),正式發布于 JDK 21,它是一種在 Java 虛擬機(JVM)層面實現的邏輯線程,不直接和操作系統的物理線程一一對應,因此它可以減少上下文切換所帶來的性能開銷。

操作系統線程、普通線程(Java 線程)和虛擬線程的關系如下:圖片

虛擬線程使用

虛擬線程的創建方式,主要有以下 4 種:

  1. Thread.startVirtualThread(Runnable task)
  2. Thread.ofVirtual().unstarted(Runnable task)
  3. Thread.ofVirtual().factory()
  4. Executors.newVirtualThreadPerTaskExecutor()

具體示例如下。

1.startVirtualThread

創建虛擬線程,并直接啟動執行任務:

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

2.unstarted

只創建虛擬線程,但不直接啟動:

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

3.factory

先創建虛擬線程工廠,然后再使用工廠創建虛擬線程,之后再調用 start() 方法進行執行:

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

4.newVirtualThreadPerTaskExecutor

使用線程池的方式創建虛擬線程:

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

虛擬線程 VS 普通線程

虛擬線程和普通線程的區別主要體現在以下幾點:

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

圖片

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

小結

線程是輕量級的進程,而虛擬線程則是輕量級的線程,虛擬線程是 JVM 層面實現的邏輯線程,不直接和操作系統的物理線程一一對應,因此使用它可以減少線程上下文切換所帶來的性能開銷。它和普通線程的線程類型也不同,普通線程是默認是用戶線程類型,而虛擬線程則是守護線程(而且不能被修改)。

責任編輯:武曉燕 來源: 磊哥和Java
相關推薦

2022-03-21 09:05:18

volatileCPUJava

2024-10-24 16:14:43

數據傳輸CPU零拷貝

2025-03-21 00:00:05

Reactor設計模式I/O 機制

2024-09-27 15:43:52

零拷貝DMAIO

2024-06-13 08:01:19

2024-08-27 12:36:33

2024-09-26 16:01:52

2024-08-26 14:52:58

JavaScript循環機制

2019-07-26 06:42:28

PG架構數據庫

2024-10-12 16:25:12

2021-11-25 10:18:42

RESTfulJava互聯網

2021-08-09 07:47:40

Git面試版本

2025-01-13 09:24:32

2025-04-09 00:00:00

2024-08-23 09:02:56

2020-12-01 08:47:36

Java異常開發

2020-06-12 15:50:56

options前端服務器

2021-11-05 10:07:13

Redis哈希表存儲

2020-06-19 15:32:56

HashMap面試代碼

2024-09-11 16:49:55

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产色综合久久不卡蜜臀 | 亚洲视频国产视频 | 亚洲欧美日韩精品久久亚洲区 | 国产精品久久久久久久久免费丝袜 | 国产精品一区二区在线观看 | 欧美三区在线观看 | 国产小视频在线看 | 欧美激情视频网站 | 日本一区二区不卡 | 国产精品视频网 | 日韩欧美电影在线 | 人人爽日日躁夜夜躁尤物 | www.久久久| 欧美寡妇偷汉性猛交 | 久久青| 超碰97人人人人人蜜桃 | 精品日韩一区二区三区 | 美女黄网站视频免费 | 日韩a视频 | 日韩精品一区二区三区 | 久久区二区 | 一区二区三区国产精品 | 精品久久一区 | 中文字幕一区二区三区在线观看 | 91精品一区二区 | 美女二区 | 色婷婷一区| 国产在线一区二区三区 | 成人精品一区亚洲午夜久久久 | 中午字幕在线观看 | 天堂成人国产精品一区 | 中文字幕精品一区 | 亚洲综合大片69999 | 欧美日韩国产一区二区 | 国产精品99久久久久久久久久久久 | 精品中文字幕视频 | 国产在线视频一区二区董小宛性色 | 日韩色在线 | 91在线精品视频 | 天天色天天射天天干 | 一区二区三区精品在线 |