Sobes.tech
Junior — Middle

Ի՞նչ են հիմնական տարբերությունները պառլել և ասինխրոն առաջադրանքների կատարման միջև։

sobes.tech AI

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

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

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

Օրինակ C#-ում՝

// Ասինխրոն մեթոդ, որը չի բլոկավորում հոսքը
async Task<string> DownloadAsync(string url) {
    using var client = new HttpClient();
    return await client.GetStringAsync(url);
}

// Մի քանի աշխատանքների պառլելային կատարմամբ
var tasks = new[] {
    Task.Run(() => DoWork(1)),
    Task.Run(() => DoWork(2))
};
await Task.WhenAll(tasks);

Ամփոփում՝

  • Պառլելիզմ՝ իրական միաժամանակյա կատարմամբ պրոցեսորային մակարդակում:
  • Ասինխրոնություն՝ մեթոդ, որը թույլ է տալիս չբլոկավորել հոսքը, և կատարել այլ գործողություններ՝ մինչ աշխատանքը ավարտվի։