Mutex và semaphore trong C# là gì? Chúng ta cần triển khai ở đâu?Mutex và semaphore Trong C# là gì? nơi chúng ta cần phải thực hiện?
Làm cách nào chúng tôi có thể làm việc với chúng trong đa luồng?
Mutex và semaphore trong C# là gì? Chúng ta cần triển khai ở đâu?Mutex và semaphore Trong C# là gì? nơi chúng ta cần phải thực hiện?
Làm cách nào chúng tôi có thể làm việc với chúng trong đa luồng?
Bạn nên bắt đầu tại MSDN.
Thông thường, bạn chỉ sử dụng Mutex trên các quy trình, ví dụ: nếu bạn có tài nguyên mà nhiều ứng dụng phải chia sẻ hoặc nếu bạn muốn xây dựng một ứng dụng đơn lẻ (tức là chỉ cho phép 1 bản sao được chạy cùng một lúc).
Một semaphore cho phép bạn giới hạn quyền truy cập vào một số chuỗi đồng thời cụ thể, để bạn có thể có, ví dụ, tối đa hai luồng thực thi một đường dẫn mã cụ thể tại một thời điểm.
+1 cho MSDN. Đó là RTFM-goto cho mọi thứ trong không gian Windows API. –
Semaphores cũng có thể được sử dụng để đồng bộ hóa giữa các quá trình. "Các semaphores hệ thống được đặt tên có thể nhìn thấy trong suốt hệ điều hành, và có thể được sử dụng để đồng bộ hóa các hoạt động của các quá trình": https://msdn.microsoft.com/en-us/library/ system.threading.semaphore (v = vs.110) .aspx –
Bạn có thể muốn xem câu lệnh khóa. Ứng dụng có thể xử lý phần lớn các tác vụ đồng bộ hóa chuỗi trong C#
class Test {
private static object Lock = new object();
public function Synchronized()
{
lock(Lock)
{
// Only one thread at a time is able to enter this section
}
}
}
Tuyên bố khóa được thực hiện bằng cách gọi Monitor.Enter và Monitor.Exit. Nó tương đương với đoạn mã sau:
Monitor.Enter(Lock);
try
{
// Only one thread at a time is able to enter this section
}
finally
{
Monitor.Exit(Lock);
}
Tôi muốn bắt đầu bằng cách đọc này: http://www.albahari.com/threading/part2.aspx#_Synchronization_Essentials và sau đó củng cố nó với các liên kết MSDN bobbymcr đăng.
Bài viết hay ... – Ricibob
đó là cách quá lớn một chủ đề để trả lời IMHO .. bạn có bất kỳ vấn đề cụ thể? – Naveen
Naveen xin vui lòng đề nghị tôi một số câu hỏi bị phân hủy để tôi có thể đào sâu vào nó .. –