Tôi đang tạo một trang web ASP.net xử lý hàng nghìn yêu cầu và tất cả bắt nguồn từ một đối tượng chính mà tất cả chúng đều chia sẻ để đọc nó. Tôi đang cố gắng quấn đầu quanh những loại khóa khác nhau này.sự hiểu biết Khóa trợ giúp?
Một số câu hỏi phổ biến tôi có cho mỗi câu hỏi.
- phạm vi của mỗi ứng dụng khóa, phiên là gì, đối tượng
- Khi nào nó quyền sử dụng một trong khác không?
- Nhiều người dùng có thể chạy mã trong khóa cùng một lúc không?
- Hiệu suất đạt được?
1.
public class MyClass
{
lock
{
// DO COOL CODE STUFF.
}
}
2.
public class MyClass
{
Application.Lock
// DO COOL CODE STUFF.
Application.Unlock
}
3.
public static object lockObject = new object();
public class MyClass
{
lock(lockObject)
{
// DO COOL CODE STUFF.
}
}
4.
private static readonly ReaderWriterLockSlim slimLock = new ReaderWriterLockSlim();
public class MyClass
{
slimLock.EnterWriteLock();
// DO COOL CODE STUFF HERE.
slimLock.ExitWriteLock();
}