Sobes.tech
Junior — Middle

Ինչու է սխալ համարվում 'լայն թելեր' տերմինի օգտագործումը կորուտինների համար։

sobes.tech AI

Պատասխան AI-ից

Կարճատև "հեշտ թելեր" տերմինը համար coroutines θεωվում է սխալ մի քանի պատճառներով.

  1. Բնության տարբերություն: Թելերը (threads) համակարգային օբյեկտներ են, որոնք կառավարում է օպերացիոն համակարգը, ունեն սեփական ստեկ և կատարողական կոնտեքստ: Coroutines-ը օգտագործողի օբյեկտներ են, որոնք իրականացնում են համագործակցային բազմակատարություն մեկ թելում:

  2. Փոխանցման մեխանիզմ: Թելերը փոխվում են օպերացիոն համակարգի պլանավորողի կողմից, ինչը պահանջում է կոնտեքստի փոփոխության ծախսեր: Coroutines-ը փոխվում է հստակ կոդում (yield, suspend), ինչը շատ ավելի էժան է:

  3. Պարալելիզմ ընդդեմ մրցակցայինության: Թելերը կարող են գործարկել միաժամանակ մի քանի միջուկներում, coroutines-ը սովորաբար մի թելում է, ապահովում է մրցակցայինություն, բայց ոչ պարալելիզմ:

  4. Ռեսուրսներ: Թելերը պահանջում են համակարգային ռեսուրսների հատկացում (ստեկ, նկարագրիչներ), coroutines-ը ունի նվազագույն ավելորդ ծախսեր, քանի որ դրանք պարզապես օբյեկտներ և վիճակներ են հիշողության մեջ:

Հետևաբար, coroutines-ը պետք է դիտարկել որպես առանձին ասինխրոն ծրագրավորման մեխանիզմ, ոչ թե "հեշտ թելեր"։