Trådens livscykel
Varje tråd i Java går igenom en väldefinierad livscykel. Trådens livscykel har följande steg:
1. Nytt: En tråd skapas i det nya tillståndet. Detta händer när du skapar ett nytt Thread-objekt och anropar dess start()-metod eller när JVM skapar en tråd internt.
2. Körbar: När tråden startar går den in i körbart tillstånd. Det är här tråden kan köra sin kod.
3. Väntar: En tråd kan gå in i vänteläge när den anropar en metod som wait(), sleep() eller join(). I vänteläge är tråden inte igång, men den kan väckas av en annan tråd.
4. Tidsinställd väntan: En tråd kan också gå in i det tidsinställda vänteläget när den anropar en metod som wait(long), sleep(long) eller join(long). I det tidsinställda vänteläget körs inte tråden, men den vaknar automatiskt efter en viss tid.
5. Avslutat: En tråd går in i det avslutade tillståndet när den avslutar sin körning eller när den stoppas av en annan tråd. I det avslutade tillståndet körs inte tråden längre och kan inte startas om.
Här är ett diagram över trådens livscykel:
[Bild av trådens livscykel](https://i.imgur.com/5HJlS.png)
Anmärkningar:
* En tråd kan bara vara i ett tillstånd åt gången.
* En tråd kan övergå från ett tillstånd till ett annat på en mängd olika sätt. Till exempel kan en tråd övergå från det körbara tillståndet till det väntande tillståndet när den anropar metoden wait() och den kan övergå från det väntande tillståndet till det körbara tillståndet när den meddelas av en annan tråd.
* En tråd kan bara avslutas av en annan tråd om den är i väntande eller tidsinställd vänteläge.
* En tråd kan inte startas om när den väl har avslutats.