首页 > 代码库 > .NET线程同步原语

.NET线程同步原语

[独占]

  用户模式    Interlock原子锁,Spinlock自旋锁

  内核模式    Mutex互斥锁(那个线程获取,那个线程释放;可以跨进程)

  混合模式    Monter

[信号量] 一批

  内核模式    semaphore(可以跨进程)

  混合模式    SemaphoreSlim(不可跨进程)

[事件通知] 一个事件

  内核模式    ManualResetEvent, AutoResetEvent(可以跨进程)

  混合模式    ManualResetEventSlim, AutoResetEventSlim(不可跨进程)

[其他]

  内核模式可以跨进程,混合/用户模式不可跨进程。锁对象是使用(同步块索引)

  Thread.Yeild    让出时间片,进入就绪状态,只能调度同一个CPU的线程,允许低优先级的线程调度

  Thread.Sleep(0)  让出时间片,进入就绪状态,可以调度任何CPU的线程,但是只能是同级或高级优先级的线程

  Thread.Sleep(1)  让出时间片,进入就绪状态,可以调度任何CPU的线程,但是只能是同级或高级优先级的线程,不是1毫秒,时间片的原因可能滞后

 

.NET线程同步原语