A lanka on polku, jota seurataan ohjelman suorituksen aikana. Suurin osa nykyään kirjoitetuista ohjelmista toimii yhtenä säietenä. Sanotaan vaikkapa, että ohjelma ei pysty lukemaan näppäinpainalluksia piirustuksen aikana. Ohjelma ei voi suorittaa näitä tehtäviä samanaikaisesti. Tämä ongelma voidaan ratkaista moniajolla, jolloin kaksi tai useampi tehtävä voidaan suorittaa samanaikaisesti. Moniajoa on kahta tyyppiä: prosessoripohjainen ja säiepohjainen. Prosessoripohjaista moniajoa hallitsee täysin käyttöjärjestelmä, mutta ohjelmoija voi jossain määrin ohjata moniajoa monisäikeistyksen kautta. Käsite monisäikeinen tarvitsee asianmukaista ymmärrystä näistä kahdesta termistä - prosessi ja lanka . Prosessi on suoritettava ohjelma. Prosessi voidaan edelleen jakaa itsenäisiin yksiköihin, jotka tunnetaan säikeinä. Lanka on kuin pieni kevyt prosessi prosessissa. Tai voimme sanoa, että lankojen kokoelma on prosessi.
Sovellukset - Kierteitystä käytetään laajalti lähes kaikilla aloilla. Yleisimmin se näkyy nykyään Internetissä, jossa käytämme kaikentyyppisiä tapahtumien käsittelyä, kuten latauksia, verkkosiirtoja, pankkipalveluita jne. Threading on segmentti, joka jakaa koodin pieniin osiin, jotka ovat erittäin kevyitä ja kuormittavat vähemmän prosessoria. muistia, jotta se voidaan helposti työstää ja saavuttaa tavoitteen halutulla alalla. Kierteityskonsepti on suunniteltu nopeiden ja säännöllisten tekniikan muutosten ongelman vuoksi ja vähemmän työskentelyä eri alueilla, koska käyttö on vähemmän. Sitten, kuten sanotaan, tarve on luomisen tai innovaation luominen, joten tätä lähestymistapaa noudattamalla ihmismieli kehittää langan käsitettä ohjelmointikyvyn parantamiseksi.
Langan elinkaari
Langan elinkaaressa on useita vaiheita. Seuraavassa on vaiheet, jotka lanka käy läpi koko elämänsä aikana.
- Uusi: Syntyneen säikeen (uuden säikeen) elinkaari alkaa tästä tilasta. Se pysyy tässä tilassa, kunnes ohjelma käynnistyy.
- Ajettava : Säikeestä tulee ajettava sen alkamisen jälkeen. Sen katsotaan suorittavan sille annetun tehtävän.
- Odottaa : Odottaessaan toisen säikeen suorittavan tehtävän, käynnissä oleva säie siirtyy odotustilaan ja siirtyy sitten takaisin takaisin vastaanotettuaan signaalin toiselta säikeeltä.
- Ajastettu odotus: Ajettava säie siirtyy tähän tilaan tietyn ajanjakson ajaksi ja siirtyy sitten takaisin, kun aikaväli umpeutuu tai säiettä odottama tapahtuma tapahtuu.
- Lopetettu (kuollut) : Säie siirtyy tähän tilaan tehtävänsä suorittamisen jälkeen.
Suoritustyypit käyttöjärjestelmässä
On olemassa kahdenlaisia suoritusmuotoja:
- Samanaikainen suoritus: Tämä tapahtuu, kun prosessori onnistuu vaihtamaan resursseja säikeiden välillä yhden prosessorin monisäikeisessä prosessissa.
- Rinnakkaissuoritus: Tämä tapahtuu, kun jokainen prosessin säie toimii erillisessä prosessorissa samaan aikaan ja samassa monisäikeisessä prosessissa
Monisäikeistyksen haitat
Monisäikeistys on monimutkaista ja monta kertaa vaikeata käsitellä. Siinä on muutamia haittoja. Nämä ovat:
- Jos et käytä lukitusmekanismeja oikein, kun tutkit tietojen käyttöongelmia, saattaa syntyä ongelmia, kuten tietojen epäjohdonmukaisuutta ja umpikujaa.
- Jos monet säikeet yrittävät päästä käsiksi samoihin tietoihin, on olemassa mahdollisuus, että langan nälkätilanne voi syntyä. Resurssikilpaongelmat ovat toinen ongelma, joka voi vaivata käyttäjää.
- Näyttöongelmia saattaa ilmetä, jos viestiketjut eivät koordinoi tietoja näytettäessä.
Monisäikeistyksen edut:
- Monisäikeistys voi parantaa ohjelman suorituskykyä ja tehokkuutta hyödyntämällä käytettävissä olevia prosessoriresursseja tehokkaammin. Suorittamalla useita säikeitä samanaikaisesti, se voi hyötyä rinnakkaisuudesta ja lyhentää yleistä suoritusaikaa.
- Monisäikeisyys voi parantaa reagointikykyä sovelluksissa, joihin liittyy käyttäjän vuorovaikutusta. Erottamalla aikaa vievät tehtävät pääsäikeestä käyttöliittymä voi pysyä responsiivisena eikä jäätyä tai jäädä vastaamatta.
- Monisäikeistys voi mahdollistaa resurssien paremman käytön. Esimerkiksi palvelinsovelluksessa useat säikeet voivat käsitellä saapuvia asiakaspyyntöjä samanaikaisesti, jolloin palvelin voi palvella useampia asiakkaita samanaikaisesti.
- Monisäikeistys voi helpottaa koodin parempaa organisointia ja modulaarisuutta jakamalla monimutkaiset tehtävät pienempiin, hallittaviin suoritusyksiköihin. Jokainen säie voi käsitellä tietyn osan tehtävästä, mikä tekee koodista helpompi ymmärtää ja ylläpitää.