Jelenlegi hely

19.3.3 Programszál státusz tesztelése

Az 5.0-ás verzióban került bevezetésre a Thread.getState metódus. Mikor ez kerül meghívásra, az alábbi Thread.State értékek valamelyike tér vissza:

  • NEW
  • RUNNABLE
  • BLOCKED
  • WAITING
  • TIMED_WAITING
  • TERMINATED

A Thread osztályhoz tartozó API tartalmazza az isAlive metódust is. Az isAlive metódus igaz visszatérési értéket generál, ha a szálat elindították, de még nem lett leállítva. Ha az isAlive visszatérési értéke hamis, akkor tudhatjuk, hogy a szál vagy új szál (NEW), vagy halott állapotban van (TERMINATED). Ha a visszatérési érték igaz, akkor viszont a szál vagy futtatható (RUNNABLE), vagy nem futtatható állapotban van.

Az 5.0-ás verziót megelőzően nem lehetett különbséget tenni az új szál vagy a halott szálak között. Ugyancsak nem lehetett megkülönböztetni a futtatható, vagy nem futtatható állapotban lévő száltól.

A processzor használatának feladása

Ahogyan el tudjuk képzelni, CPU-igényes kódok negatív hatással vannak más szálakra, amelyek azonos programban futnak. Vagyis próbáljunk jól működő szálakat írni, amelyek bizonyos időközönként önkéntesen felhagynak a processzor használatával, ezzel megadva a lehetőséget minden szálnak a futásra.
Egy szál önkéntesen abbahagyhatja a CPU használatát a yield metódus meghívásával.