Ngày 1: Nhập môn về Java Concurrency.
Java Concurrency là tính năng cho phép nhiều thread chạy song song trong cùng một ứng dụng. Java Thread là một thread của hệ thống người dùng, không phải thread nhân tạo của Java. Java Concurrency bao gồm các tính năng chính sau đây: Thread, Synchronization, Lock & Reentrant Lock, Semaphore, Executors, Callable and Future, BlockingQueue và ConcurrentMap.
Ví dụ chi tiết: Tạo Thread mới trong Java có thể được thực hiện qua hai cách:
1. Kế thừa từ lớp Thread và override phương thức run().
2. Implement interface Runnable và định nghĩa phương thức run trong Java.
Phần đặc biệt: Điều quan trọng cần ghi nhớ là một lớp chỉ có thể kế thừa từ một lớp duy nhất, nhưng nó có thể implement nhiều interfaces. Vì vậy, nếu lớp của bạn đã kế thừa từ một lớp khác, thì duy nhất cách bạn có thể tạo một thread mới là thông qua cách implement Runnable.
Câu hỏi ôn tập:
1. Java Concurrency là gì?
– Là tính năng cho phép nhiều thread chạy song song trong cùng một ứng dụng.
2. Làm thế nào để tạo mới một Thread trong Java?
– Có thể thông qua việc kế thừa từ lớp Thread hoặc implement interface Runnable.
3. Khi nào nên sử dụng các interface trong Java Concurrency?
– Khi lớp của bạn đã kế thừa từ một lớp khác, vì một lớp chỉ có thể kế thừa từ một lớp duy nhất.
4. Tạo Thread mới theo cách nào tốt hơn, thông qua việc kế thừa từ lớp Thread hay implement interface Runnable?
– Đó phụ thuộc vào yêu cầu của chương trình. Tuy nhiên, được khuyến nghị sử dụng interface Runnable vì nó tương thích với nhiều môi trường hơn.
5. Điều gì xảy ra khi gọi start() trên một thread đã được start?
– Sẽ báo lỗi IllegalThreadStateException. Một thread chỉ có thể được start một lần.