Sobes.tech
Junior

Ի՞նչ է բազմատողություն։

sobes.tech AI

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

Բազմահոսքային ծրագրավորումը թույլ է տալիս միաժամանակ իրականացնել ծրագրի մի քանի մասեր (հոսքեր), ինչը դարձնում է հավելվածը ավելի արագ արձագանքող և արդյունավետ, հատկապես ինտենսիվ մուտք/ելք կամ երկարատև հաշվարկների դեպքում:

Հիմնական հասկացություններ՝

  • Պրոցես: Աշխատող ծրագիր՝ իր սեփական հասցեային տարածքով և ռեսուրսներով:
  • Հոսք: Պրոցեսի ներսում իրականացվող միավոր, ունի սեփական ստեկ, CPU գրանցիչներ, բայց բաժանում է ռեսուրսները (հիշողություն, ֆայլերի հենակետեր):
  • Հոսքերի պլանավորիչ: Օպերացիոն համակարգը կառավարում է հոսքերի կատարումը, փոխարկելով նրանց (կոնտեքստի փոփոխություն):

Առավելություններ՝

  • UI-ի արձագանքման բարձրացում:
  • Բազմահեղուկ պրոցեսորների ռեսուրսների ավելի արդյունավետ օգտագործում:
  • Ասինխրոն ծրագրավորման պարզեցում (TPL-ի նման մոդելների միջոցով):

Կարծրություններ՝

  • Հասանելի ռեսուրսների մուտքի սինխրոնիզացիայի բարդություն (race conditions, deadlock):
  • Հոսքերի ստեղծման և կառավարման ծախսերի ավելացում:
  • Դեբագիրման դժվարություններ:

C#-ում բազմահոսքայինությունը իրականացնում է System.Threading և System.Threading.Tasks անվան տարածքների դասարանների միջոցով, մասնավորապես Thread, ThreadPool, Task, ինչպես նաև async և await բանալի բառերով:

Պարզ հոսք ստեղծելու օրինակ՝

using System.Threading;

// Նոր հոսք ստեղծում
Thread t = new Thread(DoWork);
// Հոսքի մեկնարկ
t.Start();

void DoWork()
{
    // Կոդ, որը կատարվում է առանձին հոսքում
    Console.WriteLine("Նոր հոսքում աշխատանք։");
}