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).

Egy processz 2 végrehajtási szállal egy processzoron.

Leírá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

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

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”

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

  • 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
Sablon:CPU-technológiák
  • m
  • v
  • sz
CPU-technológiák
  • Harvard
  • Módosított Harvard
  • Neumann
  • Adatfolyam
  • Összehasonlítás
Szóhosszúság
Futószalag
Szálak
  • Többszálúság
  • Egyidejű többszálúság
  • Hyper-Threading
  • Super-threading
  • SISD
  • SIMD
  • MISD
  • MIMD (SPMD)
Típusok
Komponensek
Energiagazdálkodás
  • APM
  • ACPI
  • Dynamic frequency scaling
  • Dynamic voltage scaling
  • Clock gating
Egyéb
Sablon:Operációs rendszer
  • m
  • v
  • sz
Általános
  • Advocacy
  • Összehasonlítás
  • Történet
  • Hobbyist development
  • Idővonal
  • Elterjedés
Kernel
Komponensek
Folyamatkezelés
Koncepciók
  • Kontextusváltás
  • Megszakítás (-vektor, -kezelő)
  • IPC
  • Processz
  • Process control block
  • Szál (thread)
Ütemező
  • Többfeladatosság
  • Fixed-priority preemptive
  • Multilevel feedback queue
  • Preemptive
  • Round-robin
  • Shortest job next
Memóriakezelés és
erőforrás-védelem
  • General protection fault
  • Memóriavédelem
  • Lapozás
  • Security rings
  • Segmentation fault / Bus error
  • Virtuális memória
Tároló-hozzáférés és
fájlrendszerek
  • Boot loader/Boot
  • Defragmentáció
  • Device file
  • Fájlattribútum
  • Inode
  • Journal
  • Partíció
  • Virtuális fájlrendszer
  • Virtual tape library
Lista
Egyéb koncepciók
Sablon:Párhuzamos számítástechnika
  • m
  • v
  • sz
Általános
Szintek
  • Bit
  • Utasítás
  • Adat
  • Feladat
Szálak
Elmélet
  • Amdahl törvénye
  • Gustafson törvénye
  • Cost efficiency
  • Karp–Flatt mutató
  • Slowdown
  • Speedup
Alkotóelemek
  • Folyamat (process)
  • Szál (thread)
  • Fiber
  • PRAM
  • Utasításablak
Koordináció
  • Többprocesszoros feldolgozás (multiprocessing)
  • Többszálú utasításvégrehajtás (multithreading)
  • Memóriakoherencia
  • Gyorsítótár-koherencia
  • Gyorsítótár-érvénytelenítés
  • Sorompószinkronizáció
  • Szinkronizáció
  • Ellenőrzőpont-képzés alkalmazásokban
Programozás
Hardver
  • Többprocesszoros architektúra
    • Szimmetrikus
    • Aszimmetrikus
  • Memória
    • NUMA
    • COMA
    • Elosztott memóriahasználat
    • Közös memóriahasználat
    • Osztott közös memória
  • SMT
  • MPP
  • Superscalar
  • Vektorprocesszor
  • Supercomputer
  • Beowulf
API-ok
  • Ateji PX
  • POSIX Threads
  • OpenMP
  • OpenHMPP
  • OpenACC
  • PVM
  • MPI
  • UPC
  • Intel Threading Building Blocks
  • Intel Cilk Plus
  • Boost.Thread
  • Global Arrays
  • Charm++
  • Cilk
  • Coarray Fortran
  • OpenCL
  • CUDA
  • Dryad
  • C++ AMP
Problémák
Nemzetközi katalógusok
  • Informatika Informatikai portál • összefoglaló, színes tartalomajánló lap
Ez az informatikai tárgyú lap egyelőre csonk (erősen hiányos). Segíts te is, hogy igazi szócikk lehessen belőle!