2012-02-21 41 views
0

我想了解一个进程是否会干扰在同一块硬件系统上运行的另一个进程。这可能发生在一系列广泛的产品中。即。 vmware或像运行多个.net应用程序一样简单。确实C#锁影响同一计算机系统上的其他进程

如果我在C#术语中发生特定进程say,interlock或lock关键字的重复性锁定,会由于其大量使用锁而影响其他进程的性能吗?该设置是一个重负载万维网系统,我经历了一些情景延迟,我想确定延迟是否是由一个密集的while循环锁完全由不同的Windows内核线程隔离引起的。

如果没有隔离,.NET中的应用程序域会在这种情况下帮助我吗?

谢谢您的回答

+2

锁定是进程本地的。有一些锁定机制可用于进程间同步,如'Mutex'和'Semaphore'类。 – 2012-02-21 06:41:01

回答

3

不,它不会。 C#中的lock和.Net总体来说对于进程是本地的。它不能直接影响机器上的其他进程。

A lock语句对对象的特定实例进行操作。为了让lock实现多个进程,它们都必须在同一个对象实例上使用lock。这是不可能的,因为对象是进程本地的。

0

不,这不会是一个问题......你也只是锁定自己的工作进程。其他任务有他们的过程。尽管锁对于特定任务很有用,但我建议您将它们保持在最低限度,因为您会在应用程序中引入等待。

1

我想了解的过程是否会干扰在同一块硬件系统的运行的另一个进程

有没有什么导致你这个问题,或者你只是简单地想象一些情景基于一时兴起?

A lock对运行这些线程的进程是本地的。如果您想跨进程同步,请考虑使用Semaphore

由于密集使用锁,会影响其他进程的性能吗?

简答题,没有。当然,不受约束和异想天开地使用lock可能会导致一些活锁/死锁情况。