Sobes.tech
Junior — Middle

Miks on vale kasutada terminit 'kerge niidid' korutinate jaoks?

sobes.tech AI

Vastus AI-lt

Termin "kerge voolud" korutinate jaoks on mitmel põhjusel ebatäpne:

  1. Looduslik erinevus: Voogud (threads) on süsteemiobjektid, mida haldab operatsioonisüsteem, omades oma virna ja täitmise konteksti. Korutinaadid on kasutajaobjektid, mis rakendavad koostööd tegevat mitme ülesande täitmist ühe voolu sees.

  2. Ümberlülitamise mehhanism: Voogusid vahetab operatsioonisüsteemi ajastaja, mis nõuab kontekstivahetuse kulusid. Korutinaadid vahetuvad selgelt koodis (yield, suspend), mis on palju odavam.

  3. Paralleelsus vs konkurents: Voogud võivad töötada paralleelselt mitmel tuumal, korutinaadid tavaliselt ühes voolus, pakkudes konkurentsi, kuid mitte paralleelsust.

  4. Resursid: Voogud nõuavad süsteemsete ressursside (virn, kirjeldajad) eraldamist, korutinaadid on minimaalsete lisakuludega, kuna need on lihtsalt objektid ja olekud mälus.

Seetõttu tuleks korutinaid pidada eraldi asünkroonse programmeerimise mehhanismiks, mitte "kergete voogudena".