當前位置: 華文問答 > 遊戲

十字軍之王3的多核最佳化是什麽原理?

2020-11-05遊戲

打仗跑戰爭運算執行緒,外交跑外交計算執行緒,商貿跑商貿計算執行緒。結算的時候等全部執行緒送出一個結果主執行緒再把日期往後撥動。

好處就是算商貿的時候外交不用等商貿算完再去跑外交,他算商貿的時候外交可以同時算。

平時各個運算模組互相獨立,只有需要共享數據的時候需要加鎖。這樣除了在互動運算的時候會需要等待以外,其他時候都可以各自跑各自的數據。即使自己跑的算量大把自己卡住了,也不會影響別的執行緒算他的數。

算經濟就跟泡麥片一樣,要全部省份(上千個)去查一遍表,全部經濟建築加成累計,給你一個總數。外交和戰鬥就好算多了,總共幾百個勢力,幾十場戰鬥,他們之間大部份時候又互相不幹涉。那怎麽搞比較好?自然是刷牙前的時候把水燒上,刷完牙你也燒完水,拿個結果走人。

甚至一個國家的外交和其他國家的數值沒有關系,那更好了,一次啟動5個執行緒同時算五個國家。你只需要在他們發生數據互動的時候做鎖同步,其他時候隨便他浪。