2016-03-03 10 views
6

Giả sử tôi có một thể hiện của java.util.concurrent.locks.LockXác định xem một Java 'Lock` được tổ chức bởi các thread hiện hành

Có thể để xác định xem các khóa được tổ chức bởi các thread hiện hành?

Giả sử đối tượng khóa chỉ thực hiện giao diện Lock và không nhất thiết phải reentrant, do đó, hãy gọi tới lock hoặc tryLock có thể không phải là cách hay để kiểm tra khóa.

Trả lời

12

Bản thân giao diện Lock không cung cấp chức năng như vậy, nhưng thực hiện chung, ReentrantLock có phương thức như vậy: ReentrantLock.isHeldByCurrentThread().

Lưu ý tuy nhiên, như tài liệu cho biết, mục đích chính của phương pháp này là gỡ lỗi, xác nhận và thử nghiệm. Nếu bạn cần nó cho logic chương trình bình thường, thì có lẽ có một số giải pháp tốt hơn.

+2

Cảm ơn, vừa xác nhận. Tôi hiện đang có các thành viên được khai báo là loại 'Lock' và sẽ cần thực hiện một số phép tái cấu trúc :) – arcyqwerty

+0

Ồ, và vâng, tôi đang sử dụng điều này để xác nhận, sâu trong logic chương trình mà tôi muốn đảm bảo rằng khóa thích hợp được giữ. Cảm ơn bạn đã quảng bá các phương pháp hay! – arcyqwerty

Các vấn đề liên quan