Sobes.tech
Junior — Middle

Miért helytelen a 'könnyű szálak' kifejezés használata a korutinok esetében?

sobes.tech MI

Válasz az MI-től

A "könnyű szálak" kifejezés a coroutine-ok esetében több okból is helytelennek tekinthető:

  1. Természeti különbség: A szálak (threads) rendszerobjektumok, amelyeket az operációs rendszer kezel, saját veremmel és végrehajtási kontextussal. A coroutine-ok felhasználói objektumok, amelyek kooperatív multitaskingot valósítanak meg egyetlen szálon belül.

  2. Átváltási mechanizmus: A szálakat az operációs rendszer ütemezője váltogatja, ami kontextusváltási költségekkel jár. A coroutine-ok explicit módon váltanak a kódban (yield, suspend), ami sokkal olcsóbb.

  3. Párhuzamosság vs. Verseny: A szálak több magon párhuzamosan futtathatók, a coroutine-ok általában egy szálon belül működnek, versenyt biztosítanak, de nem párhuzamot.

  4. Erőforrások: A szálak rendszererőforrásokat (verem, leírók) igényelnek, a coroutine-ok minimális overhead-költséggel rendelkeznek, mivel egyszerű objektumok és állapotok a memóriában.

Ezért a coroutine-okat külön aszinkron programozási mechanizmusként kell kezelni, nem pedig "könnyű szálakként".