Virtual Threads (Project Loom, Java 21) là các luồng nhẹ do JVM quản lý, cho phép chạy hàng triệu luồng đồng thời trên chỉ vài OS thread. Khác với Platform Thread (1:1 với OS thread), Virtual Thread dùng lịch trình M:N — nhiều virtual thread trên ít OS thread.
Lợi ích: viết code đồng bộ đơn giản nhưng đạt được concurrency cao (xử lý 10K+ request) mà không cần async/reactive phức tạp. Cách dùng: Thread.ofVirtual().start(() -> doWork()) hoặc Executors.newVirtualThreadPerTaskExecutor(). Lý tưởng cho: web server, microservices, I/O-bound workloads. Quan trọng: không thích hợp cho CPU-bound tasks (không giúp gì nếu bottleneck là tính toán, không phải I/O).