- ภาพรวมของ Virtual Threads
- Virtual Threads (โปรเจกต์ Loom) คืออะไร
- Platform Threads vs Virtual Threads - Blocking ?
- วิธีการทำงานของ Platform Threads
- วิธีการทำงานของ Virtual Threads
- กฎและแนวทางปฏิบัติที่ดีที่สุด
- Rule 1 - สร้าง Threads
- Rule 2 - อย่าใช้ CompletableFuture
- Rule 2 - ให้ใช้ Virtual Threads
- Rule 3 - อย่าใช้ Thread Pool
- Rule 3 - ให้ใช้ newThreadPerTaskExecutor
- Rule 4 - อย่าใช้ FixedThreadPool สำหรับ concurrency
- Rule 4 - ให้ใช้ Semaphore สำหรับ Concurrency
- Rule 5 - ให้ใช้ ScopedValue
- Rule 6 - ให้ใช้ ReentranceLock แทน synchronized
- Rule 7 - ทำ Structured Concurrency
- Rule 8 - ทดสอบ Virtual Threads
- Spring Boot กับ Virtual Threads
- Spring Boot MVC กับ Virtual Threads
- Spring Boot MVC Async Tasks
- RestController ใช้ Virtual Threads
- การเปลี่ยนแปลง Legacy Code
- การนำ Virtual Threads ไปใช้กับระบบเดิม
2 ความคิดเห็น
ใน JDK 24 ได้มีการแก้ไขไม่ให้
synchronizedก่อให้เกิด pinning อีกต่อไป ดังนั้นกฎข้อ 6 ก็น่าจะไม่จำเป็นแล้วราว ๆ ช่วง LTS ถัดไปScoped Value, Structured Concurrency ยังอยู่ในขั้น "พรีวิว" ดังนั้นกว่าที่ Virtual Thread จะพร้อมใช้งานเชิงพาณิชย์ก็น่าจะต้องใช้เวลาอีกพอสมควร