Exclusive
User mode interlock atomic lock, spinlock spin lock
Kernel-mode mutex mutex (that thread gets, that thread is freed; can cross-process)
Mixed Mode monter
[Semaphore] Batch
Kernel mode semaphore (can cross process)
Mixed Mode Semaphoreslim (non-cross process)
[Event Notification] an event
Kernel mode ManualResetEvent, AutoResetEvent (can cross-process)
Mixed Mode ManualResetEventSlim, Autoreseteventslim (non-cross process)
Other
Kernel mode can be cross-process, mixed/user mode not cross-process. Lock object is used (Synchronous block index)
Thread.yeild yields the time slice, enters the ready state, can only dispatch the same CPU thread, allows the low-priority thread to dispatch
Thread.Sleep (0) Make time slice, go into ready state, can dispatch any CPU thread, but can only be sibling or advanced priority thread
Thread.Sleep (1) Make time slice, enter ready state, can dispatch any CPU thread, but can only be sibling or advanced priority thread, not 1 milliseconds, the reason of time slice may lag
. NET thread Synchronization Primitives