C# 多线程学习笔记 - 2
本文主要针对 GKarch 相关文章留作笔记,仅在原文基础上记录了自己的理解与摘抄部分片段。 遵循原作者的 CC 3.0 协议。 如果想要了解更加详细的文章信息内容,请访问下列地址进行学习。
原文章地址:https://blog.gkarch.com/threading/part2.html
一、同步概要
同步构造基本分为四种,简单的阻塞方法、锁构造、信号构造、非阻塞同步构造。
1.1 阻塞方法
- 阻塞方法一般是会暂停某些线程的执行,例如
Sleep()
与Join()
方法。当一个线程被阻塞的时候,会立即出让(yields) CPU 时间片,不再消耗处理器时间。 - 通过检查线程的
ThreadState
属性来确认某个线程是否被阻塞。 - 当某个线程被阻塞或者解除阻塞的时候,会进行上下文切换。
- 阻塞方法在满足以下几个条件的时候会进行解除。
- 阻塞条件满足。
- 操作超时。
- 通过
Thread.Interrupt()
中断。 - 通过
Thread.Abort()
中止。