v1c*_*t0r 2 multithreading cpu-architecture shared-memory hardware-acceleration
多个线程在 CPU 的多个核心上并行运行。他们可以同时访问主存储器吗?
主内存和共享的末级缓存读取带宽是多个内核竞争的共享资源,但是,读取同一字节内存的多个读取器通常比多个读取器从单独的页面读取数据更快地完成。(混合写入则不然。)
如果共享内存区域足够小,以至于在每个核心的私有缓存中都很热,那么每个核心都可以以非常高的速度从中读取数据。写作会减慢其他读者的速度,尤其是。其他作者(参见cache-line-ping-pong和false共享是否相同?)。
其他读者如果不使用任何类型的锁定,而是依靠无锁算法来避免由于竞争条件而导致的错误,那么速度不会太慢。这就是为什么与仅使用锁定或生产者-消费者标志相比,无锁编程有时值得(巨大的)挑战来使其正确。