PoEdu培训 Windows班 第三十二课 Windows 线程(十三) Slim锁以及线程的状态补充
文章类别: 培训笔记 0 评论

PoEdu培训 Windows班 第三十二课 Windows 线程(十三) Slim锁以及线程的状态补充

文章类别: 培训笔记 0 评论

Windows 线程(十三) Slim锁以及线程的状态补充

Slim锁

我们加锁, 或者使用临界区, 都是为了在我们访问同一资源的时候, 不会出错
我们对同一资源进行操作, 也就是 读 和 写 这两种

我们发现, 只要有操作, 就会牵扯到安全问题
那么, 我们在一条线程写, 多条线程读的情况下
需要进行数据同步, 来让我的其他线程知道什么时候写线程写完了
用已经学过的锁, 或者临界区, 效率都会比较低
因为仅仅是为了一个线程的写安全, 导致所有的读线程都加锁
那么有没有一种锁, 在我的所有读的线程中都不锁, 只保证写线程是安全的呢?
接下来让我们认识 Slim锁

Slim锁

与临界区的区别

临界区和Slim比较相似, 但是各有优劣

Slim的好处:

Slim的劣势:

线程状态

线程的挂起, 休眠, 阻塞, 等待状态都会使线程不可调度
不可调度状态的线程可以释放CPU
当收到操作系统发送的通知说线程可以恢复运行的时候, 线程就又变成了可调度状态
休眠, 阻塞, 等待都是系统来操作管理的
挂起则是人为的
它是人为的通过API来时线程内核对象的暂停计数+1
以达到通知系统内核挂起线程的目的
本质上, 以上状态都是一样的
线程可以被认为只有两种状态, 可调度状态, 不可调度状态

未完待续...

如有错误,请提出指正!谢谢.

回复