CodeGym /Java kurs /Java Multithreading /Alle nyansene ved å lage og starte en ny tråd. Demoner.

Alle nyansene ved å lage og starte en ny tråd. Demoner.

Java Multithreading
Nivå , Lekse
Tilgjengelig

"Her er et nytt og interessant tema."

"Det viser seg at du kan starte tråder i forskjellige moduser."

"Et standardprogram (med bare én tråd) slutter å kjøre når hovedtråden er ferdig med arbeidet. Hovedtråden fullføres, programmet avsluttes, og JVM frigjør minnet."

"Hvis vi starter en undertråd, fortsetter programmet å kjøre, selv om hovedtråden avsluttes. JVM-en avsluttes ikke så lenge det er minst én løpende tråd. Når alle de løpende trådene er ferdige, lukkes programmet."

"Vel, store programmer har ofte såkalte "service-tråder" som har som oppgave å betjene andre deler av programmet. På egen hånd er de ikke nødvendige. For eksempel: fjerning av ubrukte objekter (søppelsamling), minnedumper og feil logging, ulike rapporter om gjeldende programstatus, og så videre og så videre."

"Disse tjenestetrådene er nødvendige når programmet kjører, men de trengs ikke alene."

"Ja, jeg forstår det."

"Java lar deg kjøre en tråd som en demon . Slike tråder fungerer på samme måte som andre, men hvis alle ikke-demon-tråder i et program har avsluttet og bare demontråder er igjen, vil JVM lukke programmet."

"Så det å erklære en 'tjeneste'-tråd betyr bare at den ikke blir vurdert når programmet avsluttes. Er det alt?"

"Uhhhh... Vel, du sa det kort og godt. Det var egentlig det jeg ville fortelle deg."

"Korthet er et talent. Og talentfulle roboter er talentfulle i alt."

"Noen spørsmål?"

"Hvordan starter du en tråd som en demon? Arve fra en eller annen DaemonThread-klasse?"

"Nei, det er mye enklere enn det. Thread-klassen har en setDaemon(boolean)-metode. Du må bare sende inn true og det er det. Du trenger bare å kalle den før du kaller start()-metoden, før den virkelige tråden er opprettet. Du kan ikke endre en tråds type etter at den begynner å kjøre."

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

"Og det er det?"

"Ja."

"Jeg vil igjen trekke oppmerksomheten din til prosessen med å opprette og starte en tråd."

"Å lage et Thread-objekt oppretter ikke en tråd. Et Thread-objekt er ikke en tråd. JVM oppretter en tråd når start()-metoden kalles. En Thread er et spesielt JVM-objekt som lar deg få tilgang til informasjon om en tråd og gir du har litt kontroll over det."

"Jeg skjønner. Takk, Ellie."

Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION