顺势而为47 发表于 2021-2-26 12:50

其他答主说得挺清楚了,另外说一说,多线程下的计算顺序和很多人的常识是不同的。很多人以为多线程计算好像现实分工一样,是可以控制如何计算的;事实上多线程计算的状态基本是无法预计和控制的。举个例子,我有1、2、3、4、5五个任务,一般人的常识可能是多线程会1、2、3、4、5同时开始,顺序拿到结果或者控制顺序拿到结果;但事实上多线程下,它可能是5、4、3、2、1开始,也有可能是2、4、1、3、5开始,或者其它情况开始,无法预计哪个任务何时开始在哪个位置开始,当然,结果顺序也是不固定的,你无法预计哪一个任务结果会先出现,所以对于一些有关联的任务或者是需要前一个或者多个任务结果才能进行计算的任务,多线程是难以优化的。这个问题其实就是我们码农很多时候会遇到的线程安全问题,线程安全可以保证我们在多线程模式下获得正确的结果和数据。
页: 1 2 [3]
查看完整版本: 大多数游戏做多核优化的难点是什么?