是否有可能在多处理器环境(PC)中将一个Windows进程配置为仅在一个处理器上运行(亲和性掩码= 1或SetProcessAffinityMask(GetCurrentProcess(),1)
),但其线程是否在其他处理器上生成?只能在一个处理器上进行运行只能在其他处理器上运行线程吗?
(问题来自于讨论一个公司开始,使用同步对象(事件,互斥,信号)和WinAPIs,像WaitForSignleObject
有关,等等,特别是SignalObjectAndWait
为此MSDN指出
“注意”信号“和‘等待’,不能保证作为原子操作来执行 。线程 主叫SignalObjectAndWait开始在第二对象上其等待之前在其他处理器上执行线程可以 观察所述第一对象的所述信号状态”
这是否意味着对于单处理器它保证是原子?
P.S. Windows上下文切换有什么区别,有多个处理器或单核处理器与更多真实核心?
P.P.S.请耐心等待这个问题,如果我没有使用确切的和具体的条款 - 这对我来说仍然不是很好。
“亲和力掩码= 00”没有什么帮助记录您的问题。 –
好吧,让它成为1,我会更新问题。 – ALZ