Java concurrency gói cung cấp cho bạn khả năng sử dụng rõ ràng ổ khóa. Với ổ khóa rõ ràng, bạn có thể nhìn thấy nếu một khóa có sẵn và được chỉ nếu nó có sẵn. Bằng cách này bạn có thể tránh deadlocks. Chúng tôi đã viết một chương trình mô phỏng bế tắc mà không cần sử dụng rõ ràng ổ khóa và bây giờ chúng ta sẽ viết chương trình tương tự bằng cách sử dụng khóa rõ ràng. Đây là chỉ là một viết lại và do đó sẽ còn bế tắc như cũ.Chúng tôi sẽ sử dụng giao diện khóa và thực hiện ReentrantLock ví dụ của chúng tôi. Cả hai những thuộc về gói java.util.concurrent.locks. Reentrant khóa ứng xử tương tự như cơ chế khóa nội tại bằng cách sử dụng đồng bộ từ khóa khi chúng tôi sử dụng khóa và mở khóa các phương pháp. Gọi điện thoại khóa trên một ReentrantLock thực hiện có thể được so sánh với cách nhập vào một khu vực được đồng bộ hoá và mở khóa điện thoại có thể được so sánh để thoát khỏi một khu vực đồng bộ. Kể từ khi gọi điện thoại mở khóa một nhiệm vụ rõ ràng và quan trọng, nó luôn luôn là một thực hành tốt để có nó bên trong một khối cuối cùng. Chúng ta sẽ thấy rõ ràng ổ khóa chi tiết sau đó, nhưng bây giờ chỉ để java doc cho API bất kỳ liên quan đến nghi ngờ.
đang được dịch, vui lòng đợi..
