注意:我运行的程序是C程序,并生成4个线程(pthread),并在进行少量计算后加入它们。它具有并行性(不是并发性)。
答案 0 :(得分:0)
在I7中,所有内核都共享L3缓存。如果执行的额外行导致L3缓存上的更多缓存未命中,则可以通过添加内核来降低速度。
答案 1 :(得分:0)
有些问题令人尴尬地是并行的;有些是“令人尴尬的序列”。您可能会碰到后者,但是如果不推送代码,我们只能猜测。
BigLock解决方案(例如树)只能通过锁定整个结构来更新列表,而不能从多个CPU中受益。更糟糕的是,多个CPU可能会在锁周围造成一堆颠簸,却一无所获。