1. 首页
  2. 数据库
  3. 其它
  4. 简单介绍SQL Server中的自旋锁

简单介绍SQL Server中的自旋锁

上传者: 2020-12-21 00:35:58上传 PDF文件 152.88KB 热度 19次
为什么我们需要自旋锁? 用闩锁同步多个线程间数据结构访问,在每个共享数据结构前都放置一个闩锁没有意义的。闩锁与此紧密关联:当你不能获得闩锁(因为其他人已经有一个不兼容的闩锁拿到),查询就会强制等待,并进入挂起(SUSPENDED)状态。查询在挂起状态等待直到可以拿到闩锁,然后就会进入可执行(RUNNABLE)状态。对于查询执行只要没有可用的CPU,查询就一直在可执行(RUNNABLE)状态。一旦CPU有空闲,查询会进入运行(RUNNING)状态,最后成功获取到闩锁,用它来保护访问的共享数据结构。下图展示了SQLOS对协调线程调度实现的状态机。 因为太多关联的闩锁,对“忙碌”数据结构使用闩
用户评论