Arma engine has been multithreaded for years now, threading simply isn't enough. The problem with threading is that it's way too low level for something like 3d video game, thread creation requires a lot of memory and a lot of overhead so you can't just keep creating threads whenever you feel like it. So what do we do to fix this? Create 2-3 main threads that we know can run in parallel. The problem with this aprotch is that it it leads to a lot of under utilization, as noted by everyone playing the game So how do we solve this? Two ways, abstract threading by a lot and make a thread pool, abstract thread pooling a lot and get tasking. Tasking isn't supported by c++(although it is in their new scripting language) so all we're left with is a thread pool, this will be the only way you'll ever get a good CPU usage in dayz standalone, and it needs to happen for directX12 to have meaningful impact on framerate. For those with a short attention span: thread pools or we're fucked