Gần đây tôi đã tham gia cuộc phỏng vấn và anh chàng kỹ thuật đã hỏi tôi về cách làm cho một ứng dụng an toàn chỉ.Chủ đề an toàn chủ đề - tĩnh hay không?
Vâng, sau khi giải thích chính xác lock()
, ông nói rằng không phải là một ý tưởng hay để có đối tượng tĩnh.
private static readonly object _syncLock = new object();
Ông cho biết lý do là tĩnh làm cho đối tượng đó chậm hơn cho chủ đề khóa hơn nếu nó không tĩnh. Điều này có đúng không?
EDIT: Tuy nhiên tôi vẫn không chắc chắn. Sự khác biệt giữa ba cách tiếp cận này là gì?
private static readonly object _syncLock = new object();
public static readonly object _syncLock = new object();
private readonly object _syncLock = new object();
Giải thích của bạn có ý nghĩa rất nhiều, tuy nhiên đừng quên tĩnh của nó. Không có gì từ bên ngoài có thể truy cập nó anyway. – Houman
Đây cũng là những gì tôi nghĩ. Có đối tượng khóa là không tĩnh sẽ thay đổi phạm vi của khóa. –