Tôi đã làm việc theo nguyên tắc chia sẻ không có gì của lập trình đồng thời. Về cơ bản, tất cả các luồng công nhân của tôi có các bản sao chỉ đọc bất biến của cùng một trạng thái không bao giờ được chia sẻ giữa chúng ( ngay cả bằng cách tham chiếu ). Nói chung, điều này đã làm việc thực sự tốt.
Bây giờ, ai đó đã giới thiệu bộ đệm đơn không khóa ( ví dụ: từ điển tĩnh ) mà tất cả các luồng đang truy cập đồng thời. Vì từ điển không bao giờ bị thay đổi sau khi khởi động nên không có khóa. Không có bất kỳ vấn đề An toàn chủ đề nào, nhưng bây giờ có sự suy giảm hiệu suất.
Câu hỏi là ... vì không có khóa tại sao việc giới thiệu singleton này lại tạo ra một màn trình diễn thành công? Chính xác thì chuyện gì đang diễn ra dưới vỏ bọc có thể giải thích điều này?
Để xác nhận, truy cập singleton mới này là thay đổi duy nhất và tôi có thể tạo lại nó một cách đáng tin cậy chỉ bằng cách nhận xét cuộc gọi đến bộ đệm.