Trådens livscyklus
Hver tråd i Java gennemgår en veldefineret livscyklus. Trådens livscyklus har følgende trin:
1. Nyhed: En tråd oprettes i den nye tilstand. Dette sker, når du opretter et nyt Thread-objekt og kalder dets start()-metode, eller når JVM'en opretter en tråd internt.
2. Kørbar: Når tråden starter, går den ind i kørebar tilstand. Det er her tråden kan udføre sin kode.
3. Venter: En tråd kan gå ind i ventetilstand, når den kalder en metode såsom wait(), sleep() eller join(). I ventetilstand kører tråden ikke, men den kan vækkes af en anden tråd.
4. Tidsbestemt ventetid: En tråd kan også gå ind i den tidsindstillede ventetilstand, når den kalder en metode såsom wait(long), sleep(long) eller join(long). I den tidsindstillede ventetilstand kører tråden ikke, men den vil automatisk vågne efter et bestemt tidsrum.
5. Afsluttet: En tråd går ind i den afsluttede tilstand, når den afslutter sin udførelse, eller når den stoppes af en anden tråd. I den afsluttede tilstand kører tråden ikke længere og kan ikke genstartes.
Her er et diagram over trådens livscyklus:
[Billede af trådens livscyklus](https://i.imgur.com/5HJlS.png)
Bemærkninger:
* En tråd kan kun være i én tilstand ad gangen.
* En tråd kan skifte fra en tilstand til en anden på en række forskellige måder. For eksempel kan en tråd gå over fra den kørebare tilstand til den ventende tilstand, når den kalder wait()-metoden, og den kan gå over fra den ventende tilstand til den kørbare tilstand, når den får besked fra en anden tråd.
* En tråd kan kun afsluttes af en anden tråd, hvis den er i ventetilstand eller tidsindstillet ventetilstand.
* En tråd kan ikke genstartes, når den først er blevet afsluttet.