Szál (programozás)
A végrehajtási szál (angolul thread) a számítógép-programozás során létrehozott, önálló végrehajtási egységként működő program, objektum, szekvenciálisan végrehajtható utasítás-sorozat, egy adott probléma véges számú lépésben történő megoldása (algoritmus).
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Multithreaded_process.svg/220px-Multithreaded_process.svg.png)
Leírás
[szerkesztés]A legtöbb modern operációs rendszer már rendszerszinten biztosítja ezt a felületet. Egy számítógépen párhuzamosan több szál is futhat (angolul: multithreading); ekkor több program, vagy egy többszálas program futtatását végzi egy vagy több processzor. Ha a futtatott szálak száma meghaladja a processzorok számát, a processzor idejét el kell osztani a szálak között. Ezen az időosztást is többnyire az operációs rendszerek vagy a nyelv fordítója végzi.
Felhasználása
[szerkesztés]A szálakat általában két dologra használják:
- a program gyorsítása,
- a program „pihentetése”.
A program gyorsítása
[szerkesztés]A szálakat egy programban legtöbbször arra használják, hogy felgyorsítsák azt, olyan módon, hogy a nagyobb teendőket szálakba rendezik, így mindegyik nagy feladattal(ami lassítaná a programot) külön-külön szál(processzormag) foglalkozik így a program futási ideje rövidül.
A program „pihentetése”
[szerkesztés]A szálak alkalmasak lehetnek arra, hogy néha valamilyen okból szüneteltessék a programot (pl. hogy a felhasználónak legyen ideje elolvasni egy szöveget, mielőtt a program továbblépne). Ezt olyan módon oldják meg, hogy a programot szálba helyezik és a szálat „pihentetik”. Ezt sok nyelvben máshogyan is meg lehet oldani (külön parancs van erre), de néhány nyelvben (pl.: Java) ezt nem lehet megtenni.
A legtöbb objektumorientált nyelv (pl. Java) támogatja a szálak használatát.
Irodalom
[szerkesztés]- David R. Butenhof: Programming with POSIX Threads, Addison-Wesley, ISBN 0-201-63392-2
- Bradford Nichols, Dick Buttlar, Jacqueline Proulx Farell: Pthreads Programming, O'Reilly & Associates, ISBN 1-56592-115-1
- Paul Hyde: Java Thread Programming, Sams, ISBN 0-672-31585-8
- Jim Beveridge, Robert Wiener: Multithreading Applications in Win32, Addison-Wesley, ISBN 0-201-44234-5
- Uresh Vahalia: Unix Internals: the New Frontiers, Prentice Hall, ISBN 0-13-101908-2