Video: Contain Yourself: An Intro to Docker and Containers by Nicola Kabar and Mano Marks 2025
Đối với các chủ đề kích hoạt các sự kiện đếm ngược cụ thể như lấp đầy bảng khởi chạy, bắt đầu sự kiện và nâng lên, bạn có thể tạo một lớp Java gọi là LaunchEvent. Lớp này sử dụng một kỹ thuật khác để tạo và bắt đầu các chủ đề - một trong đó đòi hỏi một vài dòng mã hơn nhưng linh hoạt hơn.
Vấn đề với việc tạo ra một lớp mở rộng lớp Thread là một lớp có thể có một superclass. Điều gì sẽ xảy ra nếu bạn muốn chủ đề của bạn mở rộng một lớp khác? Trong trường hợp đó, bạn có thể tạo một lớp thực hiện giao diện Runnable thay vì mở rộng lớp Thread.
Giao diện Runnable đánh dấu một đối tượng có thể chạy như một luồng. Nó chỉ có một phương pháp, chạy, có chứa mã được thực hiện trong chủ đề. (Lớp Thread tự triển khai Runnable, đó là lý do tại sao lớp Thread có một phương pháp chạy)
Để sử dụng giao diện Runnable để tạo và bắt đầu một chủ đề, bạn phải làm như sau:
-
Tạo một lớp thực hiện Runnable.
-
Cung cấp một phương pháp chạy trong lớp Runnable.
-
Tạo một thể hiện của lớp Thread và chuyển đối tượng Runnable của bạn đến hàm tạo của nó như một tham số.
Một đối tượng Thread được tạo ra có thể chạy lớp Runnable của bạn.
-
Gọi phương thức bắt đầu đối tượng Thread.
Phương pháp chạy của đối tượng Runnable của bạn được gọi và thực thi trong một luồng riêng biệt.
Hai bước đầu tiên trong các bước này là dễ dàng. Bí quyết là trong bước thứ ba và thứ tư, bởi vì bạn có thể hoàn thành chúng bằng nhiều cách. Đây là một cách, giả sử rằng lớp Runnable của bạn được đặt tên RunnableClass:
RunnableClass rc = new RunnableClass (); Chủ đề t = new Thread (rc); t. khởi đầu();
Các lập trình viên Java muốn được súc tích càng tốt, vì vậy bạn thường thấy mã này được nén đến một cái gì đó giống như
Thread t = new Thread (new RunnableClass ()); t. khởi đầu();
hoặc thậm chí chỉ là:
Thread mới (new RunnableClass ()). khởi đầu();
Phiên bản đơn dòng này hoạt động - miễn là bạn không cần phải truy cập đối tượng của thread trong chương trình.