Přepínání vláken je čistě v režii interpretu. Python 3 přepíná vlákna automaticky po intervalu 5 ms (hodnota sys.getswitchinterval) nehledě na to, co se ve vláknu děje a jestli je to potřeba. Přepínání kontextu samozřejmě zabere nějaký čas a navíc nedokážeme zajistit, při které konkrétní instrukci k přepnutí dojde. Bylo by proto ideální přepínat úlohy pouze ve chvíli, kdy je to potřeba. Tady se dostáváme k pojmu coroutines.