"Här är ett nytt och intressant ämne."

"Det visar sig att du kan starta trådar i olika lägen."

"Ett standardprogram (med bara en tråd) slutar köras när huvudtråden avslutar sitt arbete. Huvudtråden avslutas exekvering, programmet avslutas och JVM frigör sitt minne."

"Om vi ​​startar en underordnad tråd fortsätter programmet att köras, även om huvudtråden slutar. JVM avslutas inte så länge det finns minst en löpande tråd. När alla löpande trådar är klara stängs programmet."

"Tja, stora program har ofta så kallade "servicetrådar" vars uppgift är att serva andra delar av programmet. På egen hand är de inte nödvändiga. Till exempel: ta bort oanvända objekt (sopsamling), minnesdumpar och fel loggning, olika rapporter om aktuell programstatus, och så vidare och så vidare."

"Dessa tjänsttrådar behövs när programmet körs, men de behövs inte på egen hand."

"Ja, det förstår jag."

"Java låter dig köra en tråd som en demon . Sådana trådar fungerar på samma sätt som andra, men om alla icke-demonstrådar i ett program har avslutats och bara demontrådar finns kvar, kommer JVM att stänga programmet."

"Så att deklarera en "tjänst"-tråd betyder bara att den inte beaktas när programmet avslutas. Är det allt?"

"Uhhhh... Tja, du sa säkert det kort och gott. Det var i huvudsak vad jag ville berätta för dig."

"Brevity är en talang. Och begåvade robotar är begåvade i allt."

"Några frågor?"

"Hur startar man en tråd som en demon? Ärva från någon DaemonThread-klass?"

"Nej, det är mycket enklare än så. Thread-klassen har en setDaemon(boolean)-metod. Du måste bara skicka in true och det är det. Du behöver bara anropa den innan du anropar start()-metoden, innan den riktiga tråden är skapat. Du kan inte ändra en tråds typ efter att den har börjat köras."

Exempel:
Thread thread = new LoggerThread();
thread.setDaemon(true);
thread.start();

"Och det är allt?"

"Ja."

"Jag vill återigen uppmärksamma er på processen att skapa och starta en tråd."

"Att skapa ett Thread-objekt skapar ingen tråd. Ett Thread-objekt är inte en tråd. JVM skapar en tråd när start()-metoden anropas. En Thread är ett speciellt JVM-objekt som låter dig komma åt information om en tråd och ger du har lite kontroll över det."

"Jag förstår. Tack, Ellie."