Files
2021-11-14 12:27:47 +08:00

15 lines
297 B
C++

#pragma once
// 加锁后,IRQL会提升到Dispatch Level,在这个IRQL,当前cpu被占用,不能调度其他线程
// 对系统性能的影响是巨大的,应根据不同的IRQL,选择可用的同步方案,做到最小性能牺牲
struct SpinLock {
public:
void Init();
void Lock();
void Unlock();
private:
KSPIN_LOCK _lock;
KIRQL _oldIrql;
};