Folyamatok, szálak, és a prioritások

Mielőtt elkezdenénk beszélni multi-threading, tisztáznia kell néhány fogalmat.

Általában, bármely multi-menetes operációs rendszer különbséget tárgyak, például folyamatok és szálak. Köztük van egy nagy különbség, amely tisztának kell lennie ötlet.

Minden folyamat, az operációs rendszer létrehoz egy fő szál (thread), amely egy patak mentén futó vonal a CPU parancsokat. Ha szükséges, a fő szál létrehozhat más szálak használja ezt a szoftvert az operációs rendszer interfész.

Prioritások patakok Java alkalmazások

Ha a folyamat hozta létre több patakok, mindegyik párhuzamosan végrehajtott, és a CPU időt (vagy több CPU többprocesszoros rendszerben) között megosztjuk ezek a folyamatok.

Megoszlása ​​CPU időt egy speciális egysége az operációs rendszer - az ütemező. Planner viszont átadja a vezérlést egy külön téma, hogy még egy egyprocesszoros rendszer, a teljes illúzió párhuzamos munkafolyamatok fut.

időzítés végzi a rendszer időzítő megszakítás. Ezért minden szál kap egy időintervallumot, amely alatt aktív állapotban van.

Megjegyezzük, hogy az időzítés végezzük áramokra, inkább, mint a folyamatok. Streams különböző eljárásokkal, versenyeznek egymással a CPU időt.

Pontosan hogyan?

Java alkalmazások megadhatja az értékeket a három kiemelt patakok. Ez NORM_PRIORITY, MAX_PRIORITY és MIN_PRIORITY.

Alapértelmezésben az újonnan létrehozott szál normális prioritási NORM_PRIORITY. Ha más szálak a rendszer azonos prioritással, akkor az összes szál a CPU idő egyenrangú.

Ha szükséges, akkor növelheti vagy csökkentheti a kiemelt egyedi áram, prioritásainak meghatározása céljából számukra érték között, illetve MAX_PRIORITY MIN_PRIORITY. Streams magasabb prioritású először végrehajtásra, és a csökkentett - csak akkor, ha nincs futtatandó menetek normális vagy magas prioritású.

Kapcsolódó cikkek