CPU缓存从内存读数据时,是按缓存行读取的,即使只用到一个变量,也要将整行数据进行读 取,这行数据量可能包含其他变量。当多个线程同时修改同一个缓存行里的不同变量时,由于 同时只能有一个线程在操作,所以相比将每个变量放到不同缓存行里,性能会有所下降。多个 线程同时修改了同一个缓存行上的不同变量,由于不能并发修改,所以称为“伪共享”。
CPU缓存从内存读数据时,是按缓存行读取的,即使只用到一个变量,也要将整行数据进行读 取,这行数据量可能包含其他变量。当多个线程同时修改同一个缓存行里的不同变量时,由于 同时只能有一个线程在操作,所以相比将每个变量放到不同缓存行里,性能会有所下降。多个 线程同时修改了同一个缓存行上的不同变量,由于不能并发修改,所以称为“伪共享”。