2012-01-11 11 views
8

Tôi mới làm quen với các khái niệm này. Nhưng khi tôi đang đi sâu hơn trong threading tôi đang bối rối.Whats là sự khác biệt giữa AutoResetEvent và Mutex

Ý nghĩa của mutex, semaphore qua autoresetevent.

Chỉ có sự khác biệt mà tôi đã biết với các nghiên cứu là mutex có thể thực hiện trên các thao tác quy trình. Nếu đây là lý do tại sao nó không có cùng phương thức như Set, Reset, WaitOne.

Chúng tôi có thể thay thế AutoResetEvent bằng mutex và ngược lại không?

Vui lòng giải câu đố này.

+1

Vui lòng đọc http://www.albahari.com/threading/ –

Trả lời

16

Khái niệm khác nhau - một Mutex là mã thông báo độc quyền; chỉ một người có thể có nó; khi họ thả nó ra, ai đó khác có thể chiến đấu với nó. An AutoResetEvent là một cổng cho phép chính xác một người thông qua trước khi đóng, và được điều hành bởi một nút được tách biệt với hàng đợi của những người muốn đi qua. Khi họ đi qua cổng ngay lập tức đóng.

+0

Có, nhưng cả hai đều giải quyết cùng một mục đích. Tại một thời điểm, một người duy nhất có chìa khóa. –

+1

@ DJ không, họ không. Không ai "có khóa" cho một 'AutoResetEvent'; bạn xếp hàng, và sau đó khi cổng mở ra bạn đi qua. Bạn không nhận được một khu vực thời gian khi bạn giữ một chìa khóa. –

+0

@D J: đề nghị bạn đọc các bài báo tại liên kết tôi đăng. –