Mi az áramlás a c verem túlcsordulás az orosz

állítsa március 5 '13 at 11:15

Először meg kell érteni, hogy a magyar „flow” lefordítva két különböző szempontból. Az első - a végrehajtási szál, ez ugyanaz a téma. A második - az adatfolyam, akkor patak.

Tudom, hogy a C ++ nincs fluxus

Hamis. Az utóbbi szabvány kivitelezés áramlások már. A adatfolyam ott sokáig. És mindketten végül rájött az operációs rendszeren keresztül.

de képviselnek adatfolyam (adatok)

hogy milyen időpontban fut, vagy folyamatosan dolgozik

Amint az áramlás kezdődik, akkor kezd működni, amíg befejezi a munkáját. Kezdeni, úgy, hogy párhuzamosan hajtjuk végre. Egy csomó futó programok futnak ugyanabban az időben, hogy ne keverjük össze? Az áramlás ugyanaz. Sőt, valójában a folyamatok nem hajtják végre - ez csak egy tartályba. Végrehajtási szál. Ennek következtében minden folyamat legalább egy szál.

A különbség azt fentebb kifejtettük.

Hogyan kell csinálni, ha szüksége van egy adatfolyam?

Az első lépés az, hogy hozzon létre egy függvényt, amely végrehajtásra kerül egy külön szál. Ezután hívja a megfelelő funkciót az operációs rendszer (_beginthread. CreateThread és hasonlók). Itt egy példa.

Általánosságban elmondható, hogy a szóban forgó gondosan összekevertük kérdésekre kétféle forgalmat. Megpróbáltam osztani, és alapvetően reagálni egy végrehajtási szál (thread).

most lesz egy esszét „hogyan töltöttem Diákéveimben.” Ha valami rosszat csináltam, ne agritsya, de csak helyes nekem.

Van egy app. Amikor futtatja, van egy folyamat. Folyamat - betöltődik a RAM alkalmazás példány. Minden folyamat áll az áramlások, az egyik talán még azt mondják, hogy az eljárások / folyamatok funkciók között oszlik szálak. Az áramlási lehet egy vagy lehet több. Például, ha azt szeretnénk, hogy ha az alkalmazás futtatásához, akkor ugyanabban az időben készült felület és betölti az adatokat az adatbázisból, a két művelet akkor kell osztani két áramra - a felület lesz az elsődleges, és az adatokat a további terhelést.
megy előre
Melyik szál gyorsabban fog futni? A feldolgozás az egyes folyamatok, a rendszer osztja CPU idő függvényében a kiemelt egy folyamat (lásd a prioritásokra, a feladatkezelőben). Minden folyam ugyanazon folyamaton belül prioritást élvez, és a prioritásoknak megfelelően kiosztott CPU idő lesz osztva a folyamok között.

Válaszol március 5 '13 at 11:23

Tehát mint már említettük, a „multi-threading” kínálnak egy másik lehetőség a „könnyű view” a menet.

hogyan képviselje a patak, és hogy ez az egész a mi pont a munkaidő

bármelyik program egy parancsokat, amelyeket feldolgozó által feldolgozott egyetlen szálon programot - ez a szekvencia az a folyamat, egy többszálú - sok közülük. Ők dolgoznak abban a pillanatban, amelyben hagyod, azaz Meg lehet futtatni több szálat egyszerre, vagy lehet futtatni a szükséges konkrét rendezvények, lehet fejezni, feladataik teljesítése vagy létezik az a program élettartama. Ha kíváncsi, mint a „miért jönnek fel, ott is feldolgozza” - a következő választ. proetsssora váltás a különböző folyamatok hosszú időt vesz igénybe annak a ténynek köszönhető, hogy a folyamatok saját memóriával prostarnstvom. Közötti váltáskor patakok ezek a költségek lényegesen kisebb, mivel a patakok megosztani egy nagy része a program forrásait. Ezen túlmenően, minden egyes folyamok nincs megosztva a többi egyértelműen magában verem (stack folyamat osztva a szám „az abban foglalt” folyamok minden egyes folyam megkapta a saját), és a program számláló. Általában az áramlás is képviselteti magát néhány darab kód párhuzamosan fut egyetlen folyamatot.

milyen memória van

mint végrehajtásának folyamatát - lényegében egy darab kódot a program memóriában.

Mi többszálas és hogyan kell csinálni

többszálú - ingatlan kódja a program végre párhuzamosan (egyidejűleg) több processzormagot (hozzárendelésével minden mag végrehajtási szál (egy darab kódot, hogy meg kell kezelni)), vagy végre egy pszeudo egymagos (minden szál áll egy ideje, amely alatt ideje, hogy eleget részét kód a processzor). Flow elosztást több magot jellemzően kapcsolódik menedzser, de ha azt szeretnénk, a programkód egyértelműen kötődik az áramlás az atommag.

Készíts egy többszálú program lehet speciális könyvtári funkciók, mint például a kiemelés és az Intel TBB. Általánosságban:

  1. indít függvényében létre egy patak, és átadja azt a kódot, amely patak viszi (a mutató a saját szerepe, módszer)
  2. Az általunk használt könyvtár szinkronizálási funkciót kódok funkciók / módszerek

Vannak még egyszerűbb módon, mint használ API OpenMP szabvány, amely lehetővé teszi párhuzamosítását egyedi darab kódot egyszerűen hozzá fordító irányelvek, de ez a módszer csak korlátozottan képes a kérelmet, és nem alkalmas az összes alkalmazást.

* Ez a válasz ad csak felületesen végrehajtásának megértését áramlás, ahogy kérte.

Kapcsolódó cikkek