Mik szálak (cérnák), és miért kell használni őket, programozás Delphi - web, mysql
Hajnalán a számítógépes kor, minden programozási többnyire egyszálú. Létrehozta a program lyukasztása lyukkártya vagy szalag, kezelésére köteget egy helyi számítógépes központban, és néhány nappal később kapott egy halom, sikeres esetben, amely a kívánt eredményt. Minden feldolgozás folyik elvének megfelelően - a korábban kapott, korábban végzett, és amikor fut a program, már használt számítógép időt.
De a dolgok változnak. Többszálú végrehajtás fogalmát először az időben megosztott rendszerek (idő megosztás), ahol több ember egyszerre dolgozik egy központi számítógéppel. Fontos, hogy a CPU egyszerűen osztva a felhasználók között, és az operációs rendszer maga használta a „folyamat” és a „flow”. Asztali volna ugyanúgy. Korábban, DOS és a Windows külön-tasking. csak egy program egy számítógépen fut. Az egyre összetettebb alkalmazások és növekvő követelmények a PC, különös tekintettel a nagy teljesítményű grafikus és hálózati funkciók, több folyamat és a többszálú szükséges operációs rendszereket.
Először határozza meg az úgynevezett folyamatot. A legtöbb Windows 95, 98 és NT ezt jó intuitív ötlet. Úgy tekintenek a folyamat, mint egy programot, amely fut a gépen, ahol békében és megosztása más programokkal CPU, merevlemez és a memória. Programozók tudják, hogy a folyamat - ez egy kihívás a futtatható kódot, és ez a kód egyedi, és utasítások végrehajtásra meghatározott sorrendben. Általában, a folyamatok izolált. Ezek használata az erőforrások (memória, merevlemez IO, CPU idő) virtuális, úgy, hogy minden folyamat saját erőforrás készlet nélkül megoszthat másokkal is, amelyet az operációs rendszer. Folyamatok programfuttatási modulokat. Ők lehet elválasztani, például a Windows Explorer moduljai kódot, és a Microsoft Word - különbözőek. Azonban meg lehet osztani, mint abban az esetben a DLL. DLL-kód általában olyan sok folyamat, és gyakran ugyanabban az időben. Utasításait követve általában a különböző folyamatok nem rendeli: Microsoft Word nem áll dokumentum megnyitása adatküldés közben a nyomtatási sorban! Természetesen, ha a különböző folyamatok kölcsönhatásba, programozó rendet tartani, mint az alábbiakban tárgyaljuk.
A következő meghatározás - adatfolyam (fonal, szál). Concept patakok tűnt, amikor világossá vált, hogy ez a kívánatos, hogy az alkalmazás végrehajtása egy sor akciók minimális átállási költségek, amennyire csak lehetséges egyszerre. Azokban az esetekben, amikor bizonyos tevékenységek okozhat jelentős késedelmet egyik patakok (pl bemenetre vár a felhasználó), akkor gyakran kívánatos, hogy a program már a lehetőséget, hogy egyéb tevékenységeket végez függetlenül (például a háttér helyesírás-ellenőrző, illetve a beérkező hálózati üzenetek). Létrehozása azonban egy új folyamat minden egyes fellépés (illetve a probléma merül fel, hogy biztosítsák azok kölcsönhatásának) gyakran indokolatlanul.
A legtöbb rendszerben, amelyek támogatják a többszálú, lehet, hogy sok felhasználó így egyidejű kérések a számítógépes rendszer. Általában a processzorok száma a rendszerben kisebb, mint a adatfolyamok száma, lehet párhuzamosan végrehajtani. A legtöbb rendszer támogatja időosztásos (time szeletelés), más néven elővásárlási multitasking (megelőző multitasking), hogy megoldja ezt a problémát. A rendszer időosztásaként szála egy rövid ideig, majd kiszorították; azaz időzítő rendszeresen okoz az operációs rendszer újra, hogy melyik szálat kell hajtani, potenciálisan elzárására is már fut, és fut mások, amelyek fel vannak függesztve. Azt is lehetővé teszi egyetlen processzor végre több szálat. PC-n az időintervallumok nagyságrendileg 55 ms.
Miért használja menet?
Flow nem kell változtatni a szemantika a programot. Ők csak megváltoztatni a futásidejű műveleteket. Ennek eredményeként, ezek szinte mindig elegáns megoldást a problémákra, ha a teljesítményt. Íme néhány példa azokra a helyzetekre, amelyek folyamok lehet használni:
Végrehajtása hosszú hatású: ha az alkalmazás számítások, nem válaszol az üzenetre, ennek eredményeként nem frissíti képernyőn.
Performing háttér akció: Egyes feladatok időben nem kritikus, de meg kell folyamatosan végezzük.
Műveletbe input-output (I / O): a munka a lemez vagy a hálózat vezethet határozatlan késés. Streams lehetővé teszi az ilyen esetekben nem áll meg a végrehajtás egyéb részeinek a programot.
Mindezek a példák a közös: egyes intézkedések a programban okozhat potenciálisan hosszú késés a CPU munka, elfogadhatatlan, hogy az egyéb műveletek kell tölteni most. Természetesen vannak más előnyök, mint például:
Többprocesszoros rendszerekben egy egycsatornás alkalmazás nem fog két vagy több processzor! A 3. fejezetben azt ismertetjük részletesebben.
A hatékony felosztását idő: a prioritások folyamatok és szálak biztosítani a megfelelő használatát a CPU időt.
Wise használata áramlások nem lassú, rosszul kölcsönhatásba lépnek a felhasználói program gyors és kényelmes, hatékony, és jelentősen javítják a teljesítményt és a könnyű használat.