ใน Java 19 นั้น มีความสามารถที่น่าสนใจคือ JEP 425 : Virtual Threads ซึ่งอยู่ใน Project Loom นั่นเอง โดยยังเป็น feature preview อยู่
เป้าหมายของ Virtual Threads
มาลองเขียน code เล่น ๆ กันหน่อย โดยทำการสร้าง 10 ล้าน thread มาเล่นหน่อย
import static java.lang.Thread.startVirtualThread; public class DemoThread { public static final int THREAD_SIZE = 10_000_000; public static void main(String[] args) throws Exception { var threads = new ArrayList<Thread>(THREAD_SIZE); for (int i =0; i < THREAD_SIZE; i++) { var thread = startVirtualThread(() -> {}); threads.add(thread); } for (Thread thread : threads) { thread.join(); } } }
จากนั้นลอง run ด้วย Java 19 พบว่าทำงานได้ปกติ ไม่เกิด out of memory ใด ๆ และเร็วอีกด้วย !! น่าสนใจมาก ๆ สำหรับ feature นี้