自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開發(fā) 前端
虛擬線程是在用戶空間(而非內(nèi)核)中實(shí)現(xiàn)的輕量級線程,其創(chuàng)建、調(diào)度和銷毀由應(yīng)用程序自己管理,而不依賴于操作系統(tǒng)。

一句話定義

虛擬線程是在用戶空間(而非內(nèi)核)中實(shí)現(xiàn)的輕量級線程,其創(chuàng)建、調(diào)度和銷毀由應(yīng)用程序自己管理,而不依賴于操作系統(tǒng)。

與傳統(tǒng)線程區(qū)別

傳統(tǒng)的線程(也稱為物理線程或內(nèi)核線程)由操作系統(tǒng)內(nèi)核調(diào)度和管理,每個(gè)線程都需要分配獨(dú)立的內(nèi)存棧和寄存器上下文。這種線程調(diào)度的開銷較大,并且線程數(shù)量受限于操作系統(tǒng)的限制。

實(shí)現(xiàn)方式

Java 虛擬線程使用的是用戶態(tài)線程實(shí)現(xiàn),用戶態(tài)線程是由運(yùn)行時(shí)庫實(shí)現(xiàn)的線程模型,應(yīng)用程序可以在用戶空間中創(chuàng)建和管理多個(gè)線程,而無需涉及操作系統(tǒng)內(nèi)核。

特點(diǎn)

虛擬線程具有以下優(yōu)點(diǎn):

  1. 輕量級:虛擬線程的創(chuàng)建和切換開銷相對較低,因?yàn)樗鼈冊谟脩艨臻g中實(shí)現(xiàn),不需要操作系統(tǒng)的干預(yù)。
  2. 高并發(fā)性:虛擬線程可以實(shí)現(xiàn)更高級別的并發(fā)性,應(yīng)用程序可以創(chuàng)建大量的虛擬線程,而不受操作系統(tǒng)線程數(shù)量的限制。
  3. 更好的資源利用率:由于虛擬線程是在用戶空間中實(shí)現(xiàn)的,可以使用更少的物理線程來完成相同數(shù)量的任務(wù),從而提供更好的資源利用率。
  4. 易于編程:相對于傳統(tǒng)線程,虛擬線程的編程模型更簡單、直觀,可以通過協(xié)程或者用戶態(tài)線程庫來實(shí)現(xiàn)。

官方使用建議

開發(fā)人員通常會(huì)將應(yīng)用程序代碼從傳統(tǒng)的基于線程池的ExecutorService遷移到基于虛擬線程的ExecutorService。線程池就像其他資源池一樣,旨在共享昂貴的資源,但虛擬線程并不昂貴,因此無需對它們進(jìn)行池化。

官方示例:

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


責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2024-11-29 08:20:22

Autowired場景項(xiàng)目

2022-03-02 07:36:37

池化技術(shù)Java線程池

2024-02-28 07:37:53

JavaExecutors工具

2022-01-11 10:29:32

Docker文件掛載

2023-12-20 14:35:37

Java虛擬線程

2024-11-12 10:30:54

Docker部署數(shù)據(jù)庫

2024-06-04 00:10:00

開發(fā)拷貝

2024-05-06 08:17:50

線程池機(jī)制線程數(shù)

2024-09-12 08:32:42

2020-04-29 14:10:44

Java線程池編程語言

2023-11-03 12:29:48

Java虛擬線程

2019-11-13 14:38:34

Executors阿里線程池

2021-01-13 09:55:29

try-catch-fJava代碼

2020-07-02 14:12:52

C++語言編程

2021-08-23 13:02:50

MySQLJOIN數(shù)據(jù)庫

2023-11-06 13:04:59

Python日志庫

2024-07-15 08:20:24

2020-12-24 18:46:11

Java序列化編程語言

2013-11-11 13:35:44

虛擬化應(yīng)用

2013-08-29 09:38:32

虛擬化關(guān)鍵業(yè)務(wù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)