Windows下的各种同步机制有各式各样的特征的限制,我觉得不了解内部如何实现的,只能简单的背诵那些东西,所以想从根本上了解如何实现的。
不知道谁见过些什么资料。
我手头的看的是Microsoft Windows Internals
厄,两个字 不懂!!!!!!!!!!!!!我手上有三篇MS的文档,还不错,但是没有涉及到内部实现,共享出来不知道怎么上传,写上Link,感兴趣的去下载吧
Scheduling, Thread Context, and IRQL
http://www.microsoft.com/whdc/hwdev/driver/IRQL.mspx
Locks, Deadlocks, and Synchronization
http://www.microsoft.com/whdc/hwdev/driver/LOCKS.mspx
这片Vista的文章还没看
Interrupt Architecture Enhancements in Microsoft Windows Vista
http://www.microsoft.com/whdc/hwdev/bus/pci/MSI.mspx
嗯 是的!我只是一开始很好奇,像:RtlInterlockedSetBitsDiscardReturn 是 lock or [ecx], eaxRtlInterlockedAndBitsDiscardReturn 是 lock and [ecx], eaxInterlockedExchangeAdd 是 lock xadd [ecx], eaxInterlockedCompareExchange 是 lock cmpxchg [ecx], edx等等等等可凭啥InterlockedExchange 是 xchg [ecx], eax 呢,难道这指令就是多核安全的?!后来翻了Intel手册才知道,嗨,还真是安全的,请看:7.1.2.1 Automatic LockingThe operations on which the processor automatically follows the LOCK semantics are as follows:- When executing an XCHG instruction that references memory.当时我这个雷啊......