Python tarjoaa kolme samanaikaisuusmallia, ja oikea valinta riippuu pääasiassa siitä, onko työsi I/O-rajoittunut vai CPU-rajoittunut — päätös, jonka GIL muokkaa voimakkaasti (joka estää säikeitä suorittamasta Python-koodia rinnakkain).
Kolme mallia
threading → multiple threads, ONE process. GIL-limited for CPU.
multiprocessing → multiple PROCESSES, each its own interpreter/GIL → true parallelism.
asyncio → single thread, cooperative coroutines yielding at await points.
