Ve zkratce, hra se sklada ze spousty vlaken (dneska typicky desitky).
Jedno vlakno je hlavni a ty ostatni typicky pomocny, ktery treba loadujou assety (modely, tetxury apod.) a dalsi treba pocitaj fyziku, AI, pathfinding apod.
Ukol toho hlavniho je pak to vsechno ridit.
Pak taky nektery veci se ve vedlejsich vlaknech delaj celkem slozite, protoze hlavni problem vice u vlaken je, ze nemuze vic vlaken najednou pristupovat na jedno misto v pameti, pokud tam aspon jedno z tech vlaken zapisuje a je potreba to synchronizovat, takze musi nejaky vlakno cekat na jiny (coz je rezie navic), takze u nekterych typu uloh muze byt vicevlaknovej pristup ve vysledku i pomalejsi nez to pustit na jednom vlaknu.
Muze se ti treba stat, ze hlavni vlakno nestiha, ale ostatni vlakna jsou v pohode, pak te brzdi single thread vykon, i kdyz treba celkovy vyuziti 8jadrovyho procesoru je 30%.
Nebo hlavni jadro stiha v pohode, ale vsechny jadra jsou zatizeny treba na 60% a nejaky nove vytvoreny pomocny vlakno by potrebovalo 70% vykonu jadra, aby stihlo vsechnu svoji praci a to hlavni na nej nemuselo cekat, jenze vsechny jadra uz maj jen 40% kapacity, takze se hodi na nejaky jadro, co uz zatizeny bylo a pak se na nej bude muset cekat.
A taky do toho jeste vstupuje OS scheduler, kterej ty vlakna muze ruzne prehazovat z jednoho jadra na dalsi, takze to pak muze vypadat, ze zadny jadro nebezi na 100%, protoze to vyuziti jadra se ukazuje za nejakou dobu, treba 1s, ale pokud scheduler to vlakno po pul vterine 100% zateze prehodi jinam, tak ukaze jen 50% vytizeni, protoze behem ty posledni vteriny to jadro bezelo jen 50% doby na plnej vykon.
Snad to jde nejak pochopit, pripadne muzu neco rozepsat vic nebo nakreslit k necemu obrazek