即使多核处理器已经存在了一段时间,但仍没有编写许多应用程序来利用SMP(对称多处理)优势。这可能是由于在设计和调试中尝试利用SMP时引入的复杂性。维基百科解释:
...当[单线程]完成所有繁重的工作,[或当它无法]在多个内核之间平均平衡工作时,多核体系结构对应用程序几乎没有好处。
对真正的多线程代码进行编程通常需要复杂的线程协调,并且由于线程之间共享的数据的处理交织在一起(线程安全),因此容易引入细微而难以发现的错误。因此,此类代码在中断时比单线程代码更难调试。
与许多游戏一样,Dota 2似乎是那些不利用SMP的应用程序之一。