Java 18中啟動Project Loom數百萬執行緒
在微服務時代的現代,我們與太多的服務進行通訊以完成特定的工作。在這種情況下,執行緒大部分時間都處於阻塞狀態。雖然現代作業系統有時可以處理數百萬個開啟的套接字,但我們無法開啟許多通訊通道,因為我們受到執行緒數量的限制。如果我們可以建立數百萬個執行緒,並且每個執行緒都使用一個開放的套接字來處理外部通訊呢?這肯定會提高我們的應用程式吞吐量。
為了實現這個想法,Java 中正在進行一項名為 Project Loom 的計劃。事實上,使用 Project Loom,我們可以建立數百萬個虛擬執行緒。例如,使用下面的程式碼片段,我能夠在我的機器上建立 450 萬個執行緒,但你可以根據你的機器做更多的事情。
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.LockSupport; public class Main { public static void main(String[] args) { var counter = new AtomicInteger(); // 4_576_279 while (true) { Thread.startVirtualThread(() -> { int count = counter.incrementAndGet(); System.out.println("thread count = " + count); LockSupport.park(); }); } } } |
要執行此程式,您需要有 Java 18。 您可以使用以下命令執行:
java --source 18 --enable-preview Main.java
相關文章
- project-loom-c5m:用Project Loom虛擬執行緒實現500萬長連線的實驗ProjectOOM執行緒
- 【unity】 Loom實現多執行緒UnityOOM執行緒
- 使用Loom建立虛擬執行緒 - davidOOM執行緒
- Java執行緒篇——執行緒的開啟Java執行緒
- 【JUC】1-Java執行緒的啟動Java執行緒
- Project Loom的使用者模式執行緒或協程的效能是否一定很好? - DukesletterProjectOOM模式執行緒
- 執行緒啟動原理執行緒
- java 執行緒淺解01[建立以及啟動]Java執行緒
- 面試官:Java 執行緒如何啟動的?面試Java執行緒
- Project Loom帶來Java併發模型革命? - infoworldProjectOOMJava模型
- Java中啟動執行緒的方式及區別Java執行緒
- Project Loom搶先體驗版ProjectOOM
- Java多執行緒-執行緒中止Java執行緒
- java中如何給多執行緒中子執行緒傳遞引數?Java執行緒
- Java多執行緒之執行緒中止Java執行緒
- Java多執行緒-執行緒狀態Java執行緒
- Java多執行緒-執行緒通訊Java執行緒
- java 多執行緒守護執行緒Java執行緒
- Java多執行緒(2)執行緒鎖Java執行緒
- java多執行緒9:執行緒池Java執行緒
- 【java多執行緒】(二)執行緒停止Java執行緒
- java執行緒執行緒休眠,sleep方法Java執行緒
- Concurrency(二:建立和啟動執行緒)執行緒
- 【Java多執行緒】執行緒安全的集合Java執行緒
- 【Java】【多執行緒】執行緒池簡述Java執行緒
- Java執行緒池一:執行緒基礎Java執行緒
- Java多執行緒-執行緒池的使用Java執行緒
- Java執行緒池二:執行緒池原理Java執行緒
- 【Java多執行緒】輕鬆搞定Java多執行緒(二)Java執行緒
- java執行緒之守護執行緒和使用者執行緒Java執行緒
- Java執行緒池核心執行緒用盡後為何優先排隊而不是繼續建立執行緒直至最大執行緒數?Java執行緒
- 執行緒、開啟執行緒的兩種方式、執行緒下的Join方法、守護執行緒執行緒
- java 執行緒池Java執行緒
- Java執行緒池Java執行緒
- java——多執行緒Java執行緒
- java 停止執行緒Java執行緒
- java多執行緒Java執行緒
- Java與執行緒Java執行緒