Sobes.tech
Junior — Middle

Ինչպես են տարբերվում կատարողական հոսքերը և կորուտիները ծրագրավորման համատեքստում?

sobes.tech AI

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

Կատարման հոսքերը (threads) համակարգային պլանավորման միավորներ են, որոնք թույլ են տալիս կատարել կոդը միաժամանակ, օգտագործելով առանձին ստեկեր և պրոցեսորային կոնտեքստեր: Դրանք ծանր են ստեղծելու և փոխարինելու համար, պահանջում են սինխրոնիզացիա ընդհանուր ռեսուրսներին մուտք գործելու համար:

Կորուտիները՝ դա թեթև, համագործակցային կատարման միավորներ են, որոնք աշխատում են հոսքերի ներսում և թույլ են տալիս գրել ասինխրոն կոդը հերթականությամբ: Կորուտիները չեն ստեղծում նոր հոսքեր, բայց երբ կանգնում են, ազատում են հոսքը այլ առաջադրանքների համար, ինչը բարձրացնում է արդյունավետությունը:

Օրինակ Kotlin-ում:

import kotlinx.coroutines.*

fun main() = runBlocking {
    launch {
        delay(1000L)
        println("Կորուտին ավարտվեց")
    }
    println("Հիմնական հոսք")
}

Այստեղ, կորուտինը չի բլոկավորում հիմնական հոսքը, այլ կանգնում է delay-ում, թույլ տալով այլ առաջադրանքների կատարմանը։