Python nudi tri modela konkurentnosti, a ispravan izbor ovisi uglavnom o tome je li vaš rad I/O-bound ili CPU-bound — odluka koju se GIL uvelike utječe (koji sprječava niti da izvršavaju Python kod paralelno).
Tri modela
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.
