Multithreading në C# (C Sharp)

Written by techalb

If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. (Gerald Weinberg)

27/04/2020

Në këtë artikull, ne do të diskutojmë Multithreading në C # me shembuj. Multithreading është një nga konceptet më të rëndësishëm në C # që duhet ta kuptoni si një zhvillues. Në këtë dhe disa artikuj të ardhshëm, ne do të mbulojme shumicën e koncepteve të rëndësishme të multithreading duke përdorur C # me disa shembuj të thjeshtë. Si pjesë e këtij artikulli, ne do te shikojmë:

  • Cfare është multitasking?
  • Si sistemi operativ ekzekuton shumë aplikime në të njëjtën kohë?
  • Cfarë është Thread (fije)?
  • Kuptimi i klasës së Thread.

Cfare është multitasking?

Para se të kuptojmë konceptin e multithreading në C #, le të kuptojmë së pari multitasking. Sistemi operativ Windows është një sistem operativ multitasking. Do të thotë se ka aftësinë për të ekzekutuar shumë aplikacione në të njëjtën kohë. Për shembull, në makinën time, unë mund të hap njëkohësisht Shfletuesin Google Chrome, Microsoft Word, Notepad, VLC Media Player, Windows Explorer, etj. Kjo është e mundur sepse në makinën time kam instaluar sistemin operativ Windows dhe sistemi operativ Windows është një sistem operativ multitasking.

Si sistemi operativ ekzekuton shumë aplikime në të njëjtën kohë?

Për të ekzekutuar të gjitha aplikacionet e mësipërme, sistemi operativ bën përdorimin e brendshëm të proceseve. Një proces është një pjesë e sistemit operativ (ose një komponent nën sistemin operativ) i cili është përgjegjës për ekzekutimin e programit ose aplikacionit. Pra, për të ekzekutuar secilin program ose aplikim, do të ketë një proces.

Ju mund ta shihni këtë duke përdorur Task Manager. Thjesht kliko me të djathtën në Taskbar dhe kliko në opsionin Task Manager i cili do të hap dritaren Task Manager. Nga ajo dritare, thjesht kliko në butonin “Proceset” siç tregohet më poshtë.

Siç mund ta shihni nga imazhi i mësipërm, çdo aplikacion po ekzekuton nga një proces përkatës. Përgjatë të njëjtës linjë, ekzistojnë edhe procese të shumta që janë duke kaluar në sfond të cilat njihen si proceset e sfondit. Këto procese të sfondit njihen si shërbime të windows dhe sistemi operativ ekzekuton shumë shërbime të windows në sfond.

Pra, ne kemi një sistem operativ dhe nën sistemin operativ, kemi procese që ekzekutojnë aplikimet tona. Kështu që nën këtë proces, një aplikim funksionon. Për të ekzekutuar kodin e një aplikacioni, procesi do të përdorë një koncept të quajtur Thread.

Cfarë është Thread (fije)?

Në përgjithësi, një fije është një proces i lehtë. Me fjalë të thjeshta, mund të themi se një Thread është një njësi e një procesi që është përgjegjës për ekzekutimin e kodit të aplikacionit. Pra, çdo program ose aplikacion ka disa logjikë ose kod dhe për të ekzekutuar atë logjikë ose kod, Thread hyn në figurë.

Si parazgjedhje, çdo proces ka të paktën një fije e cila është përgjegjëse për ekzekutimin e kodit të aplikacionit dhe ajo fije quhet si Thread Main. Pra, çdo aplikacion si parazgjedhje është një aplikacion me një fije.

Shënim: Të gjitha klasat e lidhura me fillimin në C# i përkasin Sistemit. Hapësira e emrave të leximit.

Le të shohim një shembull për të kuptuar Threading.

using System; namespace ThreadingDemo {     class Program     {         static void Main(string[] args)         {             Console.WriteLine("Miresevini ne TechAlb Blog!");         }     } }

Ky është një program shumë i thjeshtë. Por nga brenda ka një fije që do të ekzekutojë këtë kod dhe ajo fill quhet Thread Main. Tani le ta vërtetojmë këtë.

Kuptimi i klasës së Thread.

Klasa e Threadit përmban një pronë statike, d.m.th. CurrentThread e cila do të kthejë shembullin e fillit aktualisht ekzekutues. Nëse shkoni në përkufizimin e klasës Thread, atëherë do të gjeni nënshkrimin e mëposhtëm.

Siç mund ta shihni, tipi i kthimit të static property CurrentThread është Thread d.m.th. do të kthejë shembullin e fillit aktualisht ekzekutues. Përgjatë të njëjtës rresht, ekziston një pronë jo-statike e quajtur Emri duke përdorur të cilën mund të vendosim dhe marrim emrin e fillit aktualisht ekzekutues.

Shënim: Si parazgjedhje, fije nuk ka asnjë emër. Nëse dëshironi, atëherë mund t’i jepni ndonjë emër fijes duke përdorur Name property i klasës Thread. Pra, modifikoni programin siç tregohet më poshtë.

using System.Threading; using System; namespace ThreadingDemo {     class Program     {         static void Main(string[] args)         {             Thread t = Thread.CurrentThread;             //paraprakisht Thread nuk ka asnje emer             //nëse dëshironi, atëherë mund ta jepni emrin në mënyrë të qartë             t.Name = "Main Thread";             Console.WriteLine("Emri per Thread aktual:" + t.Name);             Console.WriteLine("Emri per Thread aktual:" + Thread.CurrentThread.Name);             Console.Read();         }     } }

Siç mund ta shihni me qëllim të ekzekutimit të kodit të aplikacionit, krijohet një fije dhe d.m.th. Thread Main. Pra, kjo vërteton se, si parazgjedhje, çdo aplikacion është një aplikim me një fije të vetme.

Per me teper informacion rreth Thread klikoni ketu.

#techalb.al #techalbteam

0 Komente