This game runs in a single-threaded process. I did a screenshot of system resources monitor when the game was running.
This is inefficient. There is much lag in the late game because many computation tasks are in this one thread in a single logical core. Players who use low frequency CPUs will force all other players to be slow for synchronization. Therefore it is important to separate the game processes into many threads and take advantage of all logical cores. It will multiply the available computation power by the total number of logical cores - much faster! Less power will be used by the CPU because a lower frequency is enough to perform the necessary computations.
There are many opportunities for multithreading in this game. For example, each thread manages the simulation progress of just one entity, then let all logical cores of the CPU share the pool of threads. Now, if there are 1000 entities on the map, one logical CPU core must compute all 1000 simulation calculations, so it runs slowly. If we do multithreading on a CPU which has 8 logical cores (4 cores 8 threads) then each logical core only needs to do 125 simulation calculations, each physical core needs to do 250 calculations on average. This is at least 4 times faster. The difference is more significant on CPUs with more cores.