.NET如何实现互斥?

ric*_*ard 2 .net c# mutex

我理解互斥的概念.这里解释得非常好.

但现在我想知道互斥锁到底是什么.我的猜测是.NET正在采用一些原始的系统资源(甚至可能只是一个内存地址?)并将其包装在一个称为互斥锁的对象中.

有谁知道在.NET中如何实现互斥锁?

Nic*_*rey 5

互斥体的实现方式很可能取决于硬件.大多数CPU都有某种原子比较和交换指令,它提供了东西的内容.

但是,在引擎盖下,它只是一个信号量 - 一个(可能是单词),它的值表明它是否发出信号.OS为线程或进程提供了一种空闲等待的手段,等待信号量进入所需状态.大多数实现,我相信不保证线程可能获得互斥锁的所有权的顺序 - 只是因为你是第一个在线,并不意味着你将是第一个得到它.