Kazde jadro ma svoju L1 cache, L2 cache je spolocna. Vsetko je vec HW a neda sa to zmenit.
V tom programe nic neratas a vpodstate vsetky thready vkuse cakaju na lock. Za normalnych okolnosti thready maju robit ulohu ktora je XYZXYZ x narocnejsia jak lock. potom sa to neprejavuje.
P.S. a to je ta tvoja "chyba" (koncept pri multiprocesingu)