1

只是想知道监视器中的互斥是在过程/方法级别还是在监视器级别。

我的意思是,在第一种情况下,可能有 2 个线程访问监视器,但它们将在不同的过程中运行。在第二种情况下,即使调用了两个不同的过程,也不会有 2 个线程加入监视器。

假设它处于监视器级别,它似乎更安全。但是,是否存在这样的情况:监视器中可能运行 2 个不同的线程,每个线程都修改不同的共享变量,而监视器不允许这种情况发生?如果是这样的话,这不会降低系统的并发性吗?或者这是否意味着应该创建 2 个监视器而不是一个?

好的,我最好完成哲学化:)提前谢谢

4

2 回答 2

0

监视器锁定完全独立于调用方法。
如果不是这样的话,要防止两种不同的方法同时执行是非常困难的。

如果您不希望这样,请使用多个显示器。

于 2012-02-09T21:54:53.393 回答
0

监视器操作的机制是线程或进程的序列化。所以Monitor是一种保证并发情况下互斥的技能。

于 2012-03-30T01:46:17.840 回答