A siūlas yra kelias, kuriuo sekama programos vykdymo metu. Dauguma dabar parašytų programų kasdien vykdomos kaip viena gija. Tarkime, pavyzdžiui, programa negali nuskaityti klavišų paspaudimų darant brėžinius. Šių užduočių programa negali atlikti vienu metu. Šią problemą galima išspręsti kelių užduočių atlikimu, kad vienu metu būtų galima atlikti dvi ar daugiau užduočių. Daugiafunkcinis darbas yra dviejų tipų: procesoriaus ir gijų pagrindu. Procesoriumi pagrįstą daugiafunkcinį darbą visiškai valdo OS, tačiau programuotojas tam tikru mastu gali valdyti kelių užduočių atlikimą naudojant daugiagiją. Sąvoka kelių sriegių reikia tinkamai suprasti šiuos du terminus – procesas ir gija . Procesas yra vykdoma programa. Procesą galima toliau suskirstyti į nepriklausomus vienetus, vadinamus gijomis. Siūlas yra tarsi mažas lengvas procesas procese. Arba galime sakyti, kad gijų rinkinys yra tai, kas žinoma kaip procesas.
Programos - Sriegimas plačiai naudojamas beveik visose srityse. Šiais laikais dažniausiai tai matoma internete, kur naudojame visų tipų operacijų apdorojimą, pvz., papildymus, pervedimus internetu, bankininkystę ir tt. Sriegimas yra segmentas, kuris padalija kodą į mažas dalis, kurios yra labai lengvos ir mažiau apkrauna CPU. atmintis, kad ją būtų galima lengvai išdirbti ir pasiekti tikslą norimoje srityje. Sriegimo koncepcija sukurta dėl greitų ir reguliarių technologijų kaitos problemos ir mažesnio darbo įvairiose srityse dėl mažesnio panaudojimo. Tada, kaip sakoma, reikia sukurti kūrybą arba naujoves, todėl, vadovaudamasis šiuo požiūriu, žmogaus protas sukuria siūlų koncepciją, kad padidintų programavimo galimybes.
Gijos gyvavimo ciklas
Gijos gyvavimo cikle yra įvairių etapų. Toliau pateikiami etapai, kuriuos gijos praeina per visą savo gyvenimą.
- Nauja: Gimusios gijos (naujos gijos) gyvavimo ciklas prasideda šioje būsenoje. Šioje būsenoje jis išlieka iki programos pradžios.
- Paleisti : giją galima paleisti po to, kai ji prasideda. Laikoma, kad tai atlieka jam skirtą užduotį.
- Laukia : Laukiant, kol kita gija atliks užduotį, šiuo metu veikianti gija pereina į laukimo būseną ir vėl grįžta atgal, gavusi signalą iš kitos gijos.
- Laiko laukimas: Vykdoma gija pereina į šią būseną tam tikram laiko intervalui ir grįžta atgal, kai baigiasi laiko intervalas arba įvyksta įvykis, kurio gijos laukė.
- Nutrauktas (miręs) : gija pereina į šią būseną atlikusi užduotį.
Vykdymo tipai OS
Yra du vykdymo tipai:
- Lygiagretus vykdymas: Taip atsitinka, kai procesorius sėkmingai perjungia išteklius tarp gijų viename procesoriaus daugiasriegiame procese.
- Lygiagretus vykdymas: Taip atsitinka, kai kiekviena proceso gija veikia atskirame procesoriuje tuo pačiu metu ir tame pačiame daugiagijame procese.
Multithreading trūkumai
Daugiasriegis siūlas yra sudėtingas ir daug kartų sunkiai valdomas. Jis turi keletą trūkumų. Šitie yra:
- Jei netinkamai pasinaudosite užrakinimo mechanizmais, tirdami prieigos prie duomenų problemas gali kilti problemų, pvz., duomenų nenuoseklumas ir aklavietė.
- Jei daugelis gijų bando pasiekti tuos pačius duomenis, yra tikimybė, kad gali kilti gijų bado situacija. Išteklių ginčo problemos yra kita problema, kuri gali sukelti problemų vartotojui.
- Gali kilti rodymo problemų, jei gijos nesuderinamos rodant duomenis.
Kelių gijų privalumai:
- Kelių gijų naudojimas gali pagerinti programos našumą ir efektyvumą, veiksmingiau panaudojant turimus procesoriaus išteklius. Vykdant kelias gijas vienu metu, jis gali pasinaudoti lygiagretumu ir sumažinti bendrą vykdymo laiką.
- Kelių gijų naudojimas gali padidinti programų, kurios apima vartotojo sąveiką, reagavimą. Atskyrus daug laiko reikalaujančias užduotis nuo pagrindinės gijos, vartotojo sąsaja gali išlikti reaguoti ir neužstrigti ar nereaguoti.
- Kelių gijų naudojimas gali padėti geriau panaudoti išteklius. Pavyzdžiui, serverio programoje kelios gijos gali vienu metu apdoroti gaunamas klientų užklausas, todėl serveris vienu metu gali aptarnauti daugiau klientų.
- Kelių gijų naudojimas gali palengvinti geresnį kodo organizavimą ir moduliškumą, nes sudėtingas užduotis padalina į mažesnius, valdomus vykdymo vienetus. Kiekviena gija gali atlikti tam tikrą užduoties dalį, todėl kodą lengviau suprasti ir prižiūrėti.