我不关心多个线程尝试获取 CS 的情况。一个线程锁定和解锁 CS 的情况怎么样?我对它在当前多核 CPU(在 x86 和 ARM 中)中的工作方式特别感兴趣。
根据我的简单猜测,我认为有一个锁计数,当一个线程尝试获取一个 CS 时,它会互锁交换/添加。这种交换/添加是否会以任何方式影响其他核心/线程?例如,核心有自己的内存缓存(我正确吗?)并且互锁的交换/添加需要与所有其他核心交互,以确保内存没有缓存在其他地方。
我认为,最好添加一个不会有多个线程来访问数据的 CS,而不是错过一个可能很少使用多个线程的 CS。但是我想验证如果有一个线程进入/存在一个循环中的 CS,那么其他内核/线程不会因为幕后的 CPU 间同步而停止。
谢谢