Multithreading në C# (C Sharp)

Multithreading në C# (C Sharp)

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

Sikurse Google, edhe Apple lëshon shërbimin e ri për trendet e të dhënave për lëvizjen e njerëzve

Sikurse Google, edhe Apple lëshon shërbimin e ri për trendet e të dhënave për lëvizjen e njerëzve

Të martën, Apple lëshoi një mjet të ri për trendet e të dhënave të lëvizshmërisë për të siguruar informacion qeverive lokale dhe autoriteteve shëndetësore ndërsa përpiqen të zbusin përhapjen e Covid-19.

Kompania amerikane tha që të dhënat dhe depërtimet mund të jenë të dobishme si një themel për politikat e reja publike, duke treguar ndryshimin në vëllimin e njerëzve që vozisin, ecin ose marrin transportin publik në komunitetet e tyre.

Ashtu si Google, pasqyrat e Apple janë të kërkueshme nga vendi, rajoni dhe qyteti.

Për dallim nga mjeti i lëshuar nga Google, raportet e lëvizshmërisë së Apple publikohen çdo ditë dhe pasqyrojnë kërkesat për udhëzime në Apple Maps.

Kompania ka thënë se të dhënat e grumbulluara në këtë raport të ri nuk shoqërohen me Apple ID të përdoruesit dhe se kompania nuk mban një histori se ku kanë qenë përdoruesit.

Kompania tha që të dhënat dërgohen nga pajisjet e përdoruesve në shërbimin e hartave me identifikues të rastësishëm, rrotullues, në mënyrë që Apple të mos ketë një profil të lëvizjeve ose kërkimeve të ndonjë përdoruesi.