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執行緒
- Java多執行緒18:執行緒池Java執行緒
- Java中啟動執行緒的方式及區別Java執行緒
- Java執行緒:執行緒中斷Java執行緒
- Java執行緒篇——執行緒的開啟Java執行緒
- 使用Loom建立虛擬執行緒 - davidOOM執行緒
- 面試官:Java 執行緒如何啟動的?面試Java執行緒
- Java多執行緒的建立和啟動Java執行緒
- 【JUC】1-Java執行緒的啟動Java執行緒
- java中如何給多執行緒中子執行緒傳遞引數?Java執行緒
- Project Loom的使用者模式執行緒或協程的效能是否一定很好? - DukesletterProjectOOM模式執行緒
- 執行緒啟動原理執行緒
- 執行緒的啟動執行緒
- java 最大執行緒數Java執行緒
- Project Loom帶來Java併發模型革命? - infoworldProjectOOMJava模型
- java 執行緒淺解01[建立以及啟動]Java執行緒
- 【Java基礎】:執行緒的建立和啟動Java執行緒
- Java執行緒中斷與終止執行緒執行Java執行緒
- Java中的執行緒Java執行緒
- 中斷JAVA執行緒Java執行緒
- java 最大執行緒數理解Java執行緒
- Java執行緒(篇外篇):執行緒本地變數ThreadLocalJava執行緒變數thread
- Java中命名執行器服務執行緒和執行緒池Java執行緒
- Java執行緒面試題(02) Java執行緒中如何避免死鎖Java執行緒面試題
- JAVA中執行緒的建立Java執行緒
- Java中的執行緒同步Java執行緒
- Java中的多執行緒Java執行緒
- Java執行緒的中斷Java執行緒
- JAVA中的執行緒世界Java執行緒
- Java中的執行緒-1Java執行緒
- Java 可中斷執行緒Java執行緒
- 詳細分析 Java 中啟動執行緒的正確和錯誤方式Java執行緒
- Java多執行緒——執行緒Java執行緒
- Project Loom搶先體驗版ProjectOOM
- java中執行緒池的生命週期與執行緒中斷Java執行緒
- Java多執行緒中執行緒安全與鎖問題Java執行緒
- Java多執行緒/併發08、中斷執行緒 interrupt()Java執行緒