Trådens livssyklus
Hver tråd i Java går gjennom en veldefinert livssyklus. Trådens livssyklus har følgende stadier:
1. Nyhet: En tråd opprettes i den nye tilstanden. Dette skjer når du oppretter et nytt Thread-objekt og kaller dets start()-metode eller når JVM oppretter en tråd internt.
2. Kjørbar: Når tråden starter, går den inn i kjørbar tilstand. Det er her tråden kan kjøre koden sin.
3. Venter: En tråd kan gå inn i ventetilstand når den kaller en metode som wait(), sleep() eller join(). I ventetilstand kjører ikke tråden, men den kan vekkes av en annen tråd.
4. Tidsbestemt venting: En tråd kan også gå inn i tidsbestemt ventetilstand når den kaller en metode som wait(long), sleep(long) eller join(long). I den tidsstyrte ventetilstanden kjører ikke tråden, men den vil automatisk våkne etter en spesifisert tidsperiode.
5. Avsluttet: En tråd går inn i den avsluttede tilstanden når den fullfører sin kjøring eller når den stoppes av en annen tråd. I avsluttet tilstand kjører ikke tråden lenger og kan ikke startes på nytt.
Her er et diagram over trådens livssyklus:
[Bilde av trådens livssyklus](https://i.imgur.com/5HJlS.png)
Merknader:
* En tråd kan bare være i én tilstand om gangen.
* En tråd kan gå over fra en tilstand til en annen på en rekke måter. For eksempel kan en tråd gå over fra den kjørbare tilstanden til den ventende tilstanden når den kaller wait()-metoden, og den kan gå over fra den ventende tilstanden til den kjørbare tilstanden når den blir varslet av en annen tråd.
* En tråd kan bare avsluttes av en annen tråd hvis den er i vente- eller tidsbestemt ventetilstand.
* En tråd kan ikke startes på nytt når den er avsluttet.