In computing , joka on kuitu ( kuitu Englanti) on eräänlainen lanka on erityisen kevyt.
Kuten säikeet, kuiduilla on sama muistitila . Kuitujen on kuitenkin käytettävä yhteistyöhön perustuvaa moniajoa, jos langat käyttävät yleensä ennakoivaa moniajoa . Kierteet ovat usein riippuvaisia ajastimella (vuonna Englanti ajastimella ) ja ytimen (vuonna Englanti ytimen ) preempt kiireinen lanka ja jatkaa suorittamisen toisen säikeen. Kuitujen on suoritettava suoritus manuaalisesti, jotta toinen kuitu voi jatkaa omaa suoritustaan.
Kuidut kuvaavat periaatteessa samaa käsitettä kuin korutiinit . Ero, jos sellainen on, on se, että korutiinit ovat hyvin kielen käsite, jossa kuidut ovat enemmän käyttöjärjestelmän alueita, nähdään ketjuina, jotka satunnaisesti eivät toimi samanaikaisesti. Yhden konseptin riippuvuus toisesta on epäselvä: kuidut voidaan nähdä korutiineiden toteutuksena tai ominaisuutena, johon korutiineja toteutetaan.
Koska kuidut toimivat yhteistoiminnallisessa moniajo-tilassa, synkronointi ei ole enää suurin ongelma, kuten ennakkovaraisten moniajo-säikeiden kohdalla. Yhteiset synkronoinnin käsitteet, kuten semaforit , muteksit ja operaatioiden atomisuus, ovat tarpeettomia kirjoitettaessa kuitukoodia, koska synkronointi on implisiittistä. Jotkin kirjastot kuitenkin käyttävät kuituja tiettyihin toimintoihin (kuten estämättömät I / O-toiminnot), on suositeltavaa, että luet ohjeet ennen kuitujen käyttöä.
Kuitujen haittana on, että ne eivät automaattisesti hyödy moniprosessoriarkkitehtuurista käyttämättä ennalta ehkäiseviä säikeitä. N: M-tyyppinen kierteitysmalli, jossa ei ole enempää kierteitä kuin ytimiä / prosessoreita, voi kuitenkin olla tehokkaampi kuin yksinkertainen vain kierteinen malli tai yksinkertainen vain kuitumalli.
Kuidut vaativat vähemmän käyttöjärjestelmän tukea kuin säikeet. Ne voidaan toteuttaa nykyaikaisissa Unix- järjestelmissä käyttämällä toimintoja, kuten getcontext, setcontext ja swapcontext, jotka on määritelty GNU Portable Threads -kirjaston ucontext.h- otsikossa .
Käytössä on Microsoft Windows , kuidut syntyvät puhelut ConvertThreadToFiber ja CreateFiber; ripustettu kuitu, joka voi nähdä suorituksensa jatkuvan missä tahansa säikeessä. Fiber paikallista tallennusta , samanlainen Thread paikallinen tallennus voidaan tehdä kopioita muuttujia ainutlaatuinen kuitua.
Symbian OS käyttää kuitujen kaltaista konseptia Active Scheduler -ohjelmassaan . Aktiivinen objekti (Symbian OS) sisältää kuitua, joka toteuttaako Aktiivinen ajoituksen kun yksi asynkroninen tehtäviä päättyy. Useita aktiivisia objekteja voi odottaa suoritusta (prioriteetin mukaan), ja jokaisen on rajoitettava omaa suoritusaikaansa.