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

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

為什么Java官方不推薦池化虛擬線程?

來源: 責編: 時間:2023-09-28 10:06:54 307觀看
導讀一句話定義虛擬線程是在用戶空間(而非內核)中實現的輕量級線程,其創建、調度和銷毀由應用程序自己管理,而不依賴于操作系統。與傳統線程區別傳統的線程(也稱為物理線程或內核線程)由操作系統內核調度和管理,每個線程都需要分

一句話定義

虛擬線程是在用戶空間(而非內核)中實現的輕量級線程,其創建、調度和銷毀由應用程序自己管理,而不依賴于操作系統。sdC28資訊網——每日最新資訊28at.com

與傳統線程區別

傳統的線程(也稱為物理線程或內核線程)由操作系統內核調度和管理,每個線程都需要分配獨立的內存棧和寄存器上下文。這種線程調度的開銷較大,并且線程數量受限于操作系統的限制。sdC28資訊網——每日最新資訊28at.com

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

實現方式

Java 虛擬線程使用的是用戶態線程實現,用戶態線程是由運行時庫實現的線程模型,應用程序可以在用戶空間中創建和管理多個線程,而無需涉及操作系統內核。sdC28資訊網——每日最新資訊28at.com

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

特點

虛擬線程具有以下優點:sdC28資訊網——每日最新資訊28at.com

  1. 輕量級:虛擬線程的創建和切換開銷相對較低,因為它們在用戶空間中實現,不需要操作系統的干預。
  2. 高并發性:虛擬線程可以實現更高級別的并發性,應用程序可以創建大量的虛擬線程,而不受操作系統線程數量的限制。
  3. 更好的資源利用率:由于虛擬線程是在用戶空間中實現的,可以使用更少的物理線程來完成相同數量的任務,從而提供更好的資源利用率。
  4. 易于編程:相對于傳統線程,虛擬線程的編程模型更簡單、直觀,可以通過協程或者用戶態線程庫來實現。

官方使用建議

開發人員通常會將應用程序代碼從傳統的基于線程池的ExecutorService遷移到基于虛擬線程的ExecutorService。線程池就像其他資源池一樣,旨在共享昂貴的資源,但虛擬線程并不昂貴,因此無需對它們進行池化。sdC28資訊網——每日最新資訊28at.com

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

官方示例:sdC28資訊網——每日最新資訊28at.com

try (var executor = Executors.newVirtualThreadPerTaskExecutor()) {    IntStream.range(0, 10_000).forEach(i -> {        executor.submit(() -> {            Thread.sleep(Duration.ofSeconds(1));            return i;        });    });}  // executor.close() is called implicitly, and waits


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

本文鏈接:http://www.www897cc.com/showinfo-26-11826-0.html為什么Java官方不推薦池化虛擬線程?

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

上一篇: 2023年前端流行什么技術和框架了?

下一篇: 防御性編碼的意識與實踐

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 滕州市| 鹤庆县| 海南省| 柳河县| 富平县| 利川市| 安乡县| 邵武市| 延寿县| 石家庄市| 临夏县| 自治县| 江山市| 彭阳县| 虞城县| 沙雅县| 进贤县| 安龙县| 唐海县| 商水县| 连江县| 丹棱县| 苗栗市| 包头市| 浙江省| 会昌县| 合江县| 大荔县| 金沙县| 广南县| 平昌县| 黄石市| 青州市| 柳河县| 英吉沙县| 斗六市| 九江市| 尉犁县| 株洲市| 无锡市| 阿图什市|