监控与互斥在C#中
可能重复:
C#中各种线程同步选项之间的区别是什么?
监视器和C#中互斥量有什么区别?
何时使用监视器以及何时在C#中使用互斥锁?
一个Monitor
被pipe理,并且更轻量级 – 但是只限于你的AppDomain
。 一个Mutex
可以被命名,并且可以跨越进程(在应用程序之间允许一些简单的IPC场景),并且可以在需要等待处理的代码中使用)。
对于大多数简单的情况, Monitor
(通过lock
)是好的。
关于这个东西的一个很好的build议来源是Joseph Albahari的“Threading in C#”。 所有的内容都可以在线获取。 在我看来,阅读整本书是值得的,但你可以检查这些部分:
-
locking(C#监视器) ;
-
在互斥体上 。
虽然它不包含.NET 4.0新的并行构造 ,但它是一个非常好的起点。
更新 :本书已更新。 现在,它涵盖了第5部分中的 .NET 4.0并行编程。
互斥锁可以跨进程共享,并且比Monitor更重。
使用监视器,除非需要跨进程边界进行同步。