Tôi muốn biên soạn một danh sách tất cả các điều kiện có thể làm cho Màn hình đi tới đối tượng đồng bộ hạt nhân/chế độ sử dụng hạt nhân.Khi nào Màn hình .NET chính xác chuyển sang chế độ lõi?
Khối đồng bộ có trường để tham chiếu đối tượng hạt nhân do đó tôi đã khấu trừ rằng lock
sẽ chuyển sang chế độ lõi đôi khi.
Tôi thấy điều này: Lock (Monitor) internal implementation in .NET
nhưng nó có quá nhiều câu hỏi để được giải đáp và các thông tin hữu ích duy nhất là OP đã trả lời câu hỏi của riêng mình bằng cách đơn giản nói rằng lock
sẽ đi đến kernel-mode lúc nào. Ngoài ra không có liên kết đến bất cứ điều gì để hỗ trợ câu trả lời đó.
Câu hỏi của tôi khác - Tôi muốn biết khi nào chính xác lock
sẽ chuyển sang chế độ lõi (không phải và không phải lý do - khi nào).
Tôi quan tâm nhiều hơn nữa để nghe về .NET 4 và 4,5 nếu có bất kỳ sự khác biệt với các phiên bản cũ
EDIT: Từ cuốn sách Richter: "Một khối đồng bộ chứa các lĩnh vực cho một đối tượng hạt nhân, sở hữu ID của chủ đề, số lượng đệ quy và chuỗi chủ đề chờ. "
cảm ơn bạn rất nhiều. đặc biệt là đối với SSCLI - tôi không biết điều này đã có sẵn công khai. –
Cảm ơn nhận xét đã chỉ cho tôi phần liên quan trong nguồn CLR. Tôi đặc biệt quan tâm đến việc quay một phần: nó thường được yêu cầu Giám sát ở lần đầu tiên quay trước khi đi đến hạt nhân. Và tôi quan tâm chính xác nó quay như thế nào (số lần lặp lại, ...). Tôi không thể nhìn thấy quay trong đường dẫn mã bạn đã mô tả, tuy nhiên, tôi thấy quay logic có trong AwareLock :: Contention được gọi là bởi AwareLock :: TryEnter. Bây giờ có vẻ như, rằng điều này chỉ áp dụng cho TryEnter khi thời gian chờ được sử dụng, vì vậy tôi đoán quay không được sử dụng khi sử dụng từ khoá khóa C#. Tôi có đúng không? –