Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 在并发代码中,互斥锁和它所保护的数据应该在内存中保持在一起,还是保持在很远的距离?_Multithreading_Concurrency_Mutex - Fatal编程技术网

Multithreading 在并发代码中,互斥锁和它所保护的数据应该在内存中保持在一起,还是保持在很远的距离?

Multithreading 在并发代码中,互斥锁和它所保护的数据应该在内存中保持在一起,还是保持在很远的距离?,multithreading,concurrency,mutex,Multithreading,Concurrency,Mutex,数据和互斥锁应该在同一缓存线中吗? 这是否取决于数据更新的频率?我猜想,如果我们不经常更新数据,我们仍然可以经常访问互斥锁来访问数据。在这种情况下,我们不希望每次加载互斥时都在缓存中加载数据。另一方面,如果我们经常修改数据,那么我认为将数据和互斥加载到缓存中会更有意义?我无法通过网络搜索找到一个明确的答案,因此提出了这个问题

数据和互斥锁应该在同一缓存线中吗? 这是否取决于数据更新的频率?我猜想,如果我们不经常更新数据,我们仍然可以经常访问互斥锁来访问数据。在这种情况下,我们不希望每次加载互斥时都在缓存中加载数据。另一方面,如果我们经常修改数据,那么我认为将数据和互斥加载到缓存中会更有意义?我无法通过网络搜索找到一个明确的答案,因此提出了这个问题