ใน Java 19 นั้น มีความสามารถที่น่าสนใจคือ JEP 425 : Virtual Threads
ซึ่งอยู่ใน Project Loom นั่นเอง
โดยยังเป็น feature preview อยู่
เป้าหมายของ Virtual Threads
- ทำการ scale การทำงานของ thread ให้ทำงานร่วมกับ hardware ได้ดีขึ้น ลดการใช้ memory ลงไป
- สามารถปรับการใช้งาน Thread API ได้ง่าย
- ให้ง่ายต่อการแก้ไขปัญหา การ debug และ profiling ด้วย JDK tools
มาลองเขียน code เล่น ๆ กันหน่อย
โดยทำการสร้าง 10 ล้าน thread มาเล่นหน่อย
[gist id="e1ca9b6e50106d445afac253df0feb28" file="DemoThread.java"]จากนั้นลอง run ด้วย Java 19
พบว่าทำงานได้ปกติ ไม่เกิด out of memory ใด ๆ
และเร็วอีกด้วย !!
น่าสนใจมาก ๆ สำหรับ feature นี้