Table of Contents
Thiết kế mô hình đơnton an toàn chỉ là quan trọng trong ứng dụng đa đọc để đảm bảo rằng chỉ có một thể hiện của một lớp, ngay cả khi nhiều sợi cố gắng tạo ra một thể hiện cùng lúc. Bài này khám phá các thực hành tốt nhất và các kỹ thuật phổ biến nhất để thực hiện các mẫu đơn an toàn sợi.
Hiểu gương độc thân
Mô hình đơn kích thước một lớp với một đối tượng riêng lẻ. Nó thường được dùng để quản lý các nguồn tài nguyên chia sẻ như kết nối cơ sở dữ liệu hoặc thiết lập cấu hình. Trong môi trường đa chiều, việc thực hiện đơn ngây thơ có thể dẫn đến nhiều trường hợp, đánh bại mục đích của mô hình.
Thử thách trong môi trường đa đọc
Khi nhiều sợi cố tạo một thể hiện cùng một lúc, điều kiện chủng tộc có thể xảy ra. Nếu không có sự đồng bộ hóa thích hợp, nhiều sợi có thể vượt qua vòng kiểm tra và tạo ra nhiều vật thể. Thấu hiểu sự an toàn của sợi bao gồm các chiến lược ngăn ngừa tình trạng chủng tộc này.
Khoá đôi
Phương pháp này giảm sự đồng bộ hoá trên đầu bằng cách kiểm tra xem có một tiến trình nào đã tồn tại trước khi có ổ khóa. Nó bao gồm hai kiểm tra: một bên ngoài khối đã đồng bộ hoá và một bên trong. Thực hiện đúng đòi hỏi các biến cố dễ thay đổi để ngăn cản việc sắp xếp lại sự dạy dỗ.
Ví dụ (Java):
[FLT:] prilate slungly Singleton eleton;
Công chúng đang giữ trạng thái tĩnh Singleton nhận được Instance () )
nếu (sự thay đổi == null) )
đã đồng bộ hoá (Singleton. class) )
nếu (sự thay đổi == null) )
thể hiện = mới Singleton ();)
]
]
]
thể hiện
Khởi tạo đối tượng cầm giữ trước khi bị hủy bỏ
Việc tiếp cận này để hiệu chỉnh cơ chế nạp chỉ để đảm bảo an toàn mà không đồng bộ hóa rõ ràng. Tiến trình này được tổ chức trong lớp tĩnh đã làm tổ, chỉ được nạp khi cần thiết.
Ví dụ (Java):
Phụ đề dịch bởi:
tư nhân tĩnh Singleton TRONG LINH= New Singleton;)
Công chúng đang giữ trạng thái tĩnh Singleton nhận được Instance () )
trở lại Holder.INSTAM;
Những thực hành tốt nhất để được an toàn
- Sử dụng thành ngữ "trên cao" để đơn giản hóa và hiệu quả.
- Bảo đảm trường hợp đơn được tuyên bố là dễ nổi bật nếu dùng khóa đã kiểm tra hai lần.
- Tránh đồng bộ hóa không cần thiết để cải thiện hiệu suất.
- Thử nghiệm đơn thể thực hiện hoàn toàn dưới điều kiện đa luồng.
Kết luận
Thao tác tạo mô hình mạch an toàn chỉ cần xem xét cẩn thận các kỹ thuật đồng bộ hóa. Cụm từ « Giữ lại » gốc là một giải pháp sạch và hiệu quả, trong khi khóa được kiểm tra kép cung cấp tính linh hoạt với khả năng dễ thay đổi đúng. Sau đó thực hiện tốt nhất đảm bảo các ứng dụng đáng tin cậy trong nhiều ứng dụng đã đọc.