注:我运行的程序是一个C程序,并产生4个线程(并行线程)和计算的一点点后加入他们。它的并行性(不是并发)。
在I7,所有核心共享L3缓存。有可能通过增加内核如果执行的额外行导致在L3高速缓存更高速缓存未命中松动速度。
一些问题是尴尬的并行;有些“尴尬序列”。你可能已经击中了后者,但不推你的代码,我们只能猜测。
BigLock解决方案,例如树木,只能通过锁定整个结构进行更新列表,没有从多CPU中受益。更糟的是,多个CPU可能导致一堆抖动的周围将一无所获的锁。