Thread là đơn vị thực thi nhẹ cho phép chạy concurrent.
Các cách tạo:
- extends Thread:
class MyThread extends Thread { public void run() {...}} new MyThread().start(). - implements Runnable:
class MyRunnable implements Runnable { public void run() {...}} new Thread(new MyRunnable()).start(). - Callable + ExecutorService: trả về kết quả qua Future —
Future<String> f = executor.submit(() -> "result"); f.get(). - Virtual Threads (Java 21+):
Thread.ofVirtual().start(() -> doWork())— lightweight, không block OS thread, phù hợp I/O-heavy workload
Ưu tiên Runnable vì không block inheritance.
Luôn gọi start() thay vì run().