宅男在线永久免费观看网直播,亚洲欧洲日产国码无码久久99,野花社区在线观看视频,亚洲人交乣女bbw,一本一本久久a久久精品综合不卡

全部
常見問題
產(chǎn)品動態(tài)
精選推薦

Java 21 新特性:虛擬線程(Virtual Threads)

管理 管理 編輯 刪除

在Java 21中,引入了虛擬線程(Virtual Threads)來簡化和增強并發(fā)性,這使得在Java中編程并發(fā)程序更容易、更高效。

虛擬線程,也稱為“用戶模式線程(user-mode threads)”或“纖程(fibers)”。該功能旨在簡化并發(fā)編程并提供更好的可擴展性。虛擬線程是輕量級的,這意味著它們可以比傳統(tǒng)線程創(chuàng)建更多數(shù)量,并且開銷要少得多。這使得在自己的線程中運行單獨任務或請求變得更加實用,即使在高吞吐量的程序中也是如此。

#創(chuàng)建和使用虛擬線程

在Java 21中創(chuàng)建和使用虛擬線程有多種方法:

#1. 使用靜態(tài)構建器方法

Thread.startVirtualThread方法將可運行對象作為參數(shù)來創(chuàng)建,并立即啟動虛擬線程,具體如下代碼:


Runnable runnable = () -> {
    System.out.println("Hello, www.didispace.com");
};

// 使用靜態(tài)構建器方法
Thread virtualThread = Thread.startVirtualThread(runnable);







也可以使用Thread.ofVirtual()來創(chuàng)建,這里還可以設置一些屬性,比如:線程名稱。具體如下代碼:


Thread.ofVirtual()
        .name("didispace-virtual-thread")
        .start(runnable);




#2. 與ExecutorService結合使用

從Java 5開始,就推薦開發(fā)人員使用ExecutorServices而不是直接使用Thread類了?,F(xiàn)在,Java 21中引入了使用虛擬線程,所以也有了新的ExecutorService來適配,看看下面的例子:


Runnable runnable = () -> {
    System.out.println("Hello, www.didispace.com");
};

try (ExecutorService executorService = Executors.newVirtualThreadPerTaskExecutor()) {
    for (int i = 0; i < 100; i++) {
        executorService.submit(runnable);
    }
}










上述代碼在try代碼塊中創(chuàng)建了一個ExecutorServices,用來為每個提交的任務創(chuàng)建虛擬線程。

#3. 使用虛擬線程工廠

開發(fā)者還可以創(chuàng)建一個生成虛擬線程的工廠來管理,具體看下面的例子例子:


Runnable runnable = () -> {
    System.out.println("Hello, www.didispace.com");
};

ThreadFactory virtualThreadFactory = Thread.ofVirtual()
        .name("didispace", 0)
        .factory();

Thread factoryThread = virtualThreadFactory.newThread(runnable);
factoryThread.start();











這段代碼創(chuàng)建了一個虛擬線程工廠,每個虛擬線程都會以didispace為前綴、以數(shù)字結尾(從0開始累加)的名稱。

#小結

上面我們介紹了虛擬線程的創(chuàng)建和使用,而我們大多數(shù)Java開發(fā)者都基于Spring來開發(fā)具體業(yè)務應用,所以很多場景下可能都不太涉及手工創(chuàng)建的操作。所以,對于虛擬線程的概念,你只需要有一個基本的認識。所以,在文章的最后,做一個小結,以方便大家理解和記憶:

  • 虛擬線程是由JVM管理的輕量級線程。
  • 虛擬線程不需要任何顯式分配或調(diào)度。
  • 虛擬線程非常適合I/O密集型任務或需要大量并行性的任務。
  • 虛擬線程也可以用來實現(xiàn)異步操作。

另外,值得注意的是,雖然虛擬線程可以在并發(fā)性和可擴展性方面提供顯著的幫助,但它們并不總是適合所有場景。有些需要大量計算的任務,并不一定在虛擬線程中運行更好,因為虛擬線程也有上下文切換的開。具體情況還是需要通過測試評測,以找到最優(yōu)解。


請登錄后查看

Desire- 最后編輯于2024-12-17 16:08:59

快捷回復
回復
回復
回復({{post_count}}) {{!is_user ? '我的回復' :'全部回復'}}
排序 默認正序 回復倒序 點贊倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理員 企業(yè)

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
{{item.is_suggest == 1? '取消推薦': '推薦'}}
沙發(fā) 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暫無簡介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打賞
已打賞¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回復' : '回復'}}
刪除
回復
回復

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回復 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打賞
已打賞¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回復' : '回復'}}
刪除
回復
回復
查看更多
打賞
已打賞¥{{reward_price}}
1006
{{like_count}}
{{collect_count}}
添加回復 ({{post_count}})

相關推薦

快速安全登錄

使用微信掃碼登錄
{{item.label}} 加精
{{item.label}} {{item.label}} 板塊推薦 常見問題 產(chǎn)品動態(tài) 精選推薦 首頁頭條 首頁動態(tài) 首頁推薦
取 消 確 定
回復
回復
問題:
問題自動獲取的帖子內(nèi)容,不準確時需要手動修改. [獲取答案]
答案:
提交
bug 需求 取 消 確 定
打賞金額
當前余額:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
請輸入 0.1-{{reward_max_price}} 范圍內(nèi)的數(shù)值
打賞成功
¥{{price}}
完成 確認打賞

微信登錄/注冊

切換手機號登錄

{{ bind_phone ? '綁定手機' : '手機登錄'}}

{{codeText}}
切換微信登錄/注冊
暫不綁定
CRMEB客服

CRMEB咨詢熱線 咨詢熱線

400-8888-794

微信掃碼咨詢

CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
返回頂部 返回頂部
CRMEB客服