Giả sử, có các luồng T1, T2 và T3. Làm thế nào để đảm bảo luồng T2 chạy sau T1 và luồng T3 chạy sau T2? Đây là câu hỏi khá phổ biến ở level middle khi phỏng vẩn Java.
Bạn đã bao giờ tự hỏi làm thế nào để đảm bảo một luồng chạy sau luồng khác trong Java chưa? Chúng ta hãy cùng phân tích bằng một ví dụ thực tế sử dụng ba luồng: T1, T2 và T3. Trong các trường hợp T2 chỉ cần chạy sau T1 và T3 sau T2, phương thức join() trong Java sẽ giải quyết vấn đề.
Xem mã để biết chi tiết.

Cách thức hoạt động:
join() chặn luồng hiện tại cho đến khi luồng mục tiêu hoàn tất. Bằng cách gọi T1.join(), T2 sẽ chỉ bắt đầu sau khi T1 hoàn tất. Tương tự, T3 sẽ chỉ bắt đầu sau khi T2 hoàn tất.
Một thứ tự thực thi rõ ràng: T1 ➔ T2 ➔ T3. Hoàn hảo cho các tác vụ mà việc thực thi tuần tự trên nhiều luồng là rất quan trọng.











Leave a Reply