"Narito ang isang bago at kawili-wiling paksa."

"Lumalabas na maaari kang magsimula ng mga thread sa iba't ibang mga mode."

"Ang isang karaniwang programa (na may isang thread lamang) ay tumitigil sa pagtakbo kapag ang pangunahing thread ay natapos na sa trabaho nito. Ang pangunahing thread ay natapos na isagawa, ang programa ay nagtatapos, at ang JVM ay nagpapalaya sa memorya nito."

"Kung maglulunsad kami ng isang child thread, patuloy na tumatakbo ang programa, kahit na matapos ang pangunahing thread. Hindi natatapos ang JVM hangga't mayroong kahit isang tumatakbong thread. Kapag natapos na ang lahat ng tumatakbong thread, magsasara ang program."

"Buweno, ang mga malalaking programa ay madalas na may tinatawag na 'mga thread ng serbisyo' na ang trabaho ay upang magserbisyo sa iba pang mga bahagi ng programa. Sa kanilang sarili, hindi sila kinakailangan. Halimbawa: pag-alis ng mga hindi nagamit na bagay (pagkolekta ng basura), memory dumps at error pag-log, iba't ibang mga ulat sa kasalukuyang katayuan ng programa, at iba pa at iba pa."

"Ang mga thread ng serbisyo na ito ay kailangan kapag tumatakbo ang programa, ngunit hindi sila kailangan sa kanilang sarili."

"Oo, naiintindihan ko iyon."

"Hinahayaan ka ng Java na magpatakbo ng isang thread bilang isang daemon . Ang ganitong mga thread ay gumagana tulad ng iba, ngunit kung ang lahat ng hindi-daemon na mga thread sa isang programa ay natapos na at tanging mga daemon thread na lamang ang natitira, isasara ng JVM ang programa."

"Kaya ang pagdedeklara ng thread na 'serbisyo' ay nangangahulugan lamang na hindi ito isinasaalang-alang kapag natapos na ang programa. Iyon lang ba?"

"Uhhhh... Well, you sure said that short and sweet. Essentially, yun ang gusto kong sabihin sayo."

"Ang kaiklian ay isang talento. At ang mga mahuhusay na robot ay may talento sa lahat ng bagay."

"May tanong?"

"Paano ka magsisimula ng thread bilang isang daemon? Magmana mula sa ilang klase ng DaemonThread?"

"Hindi, ito ay mas simple kaysa doon. Ang klase ng Thread ay may setDaemon(boolean) na pamamaraan. Kailangan mo lang ipasa ang true at iyon na. Kailangan mo lang itong tawagan bago tawagan ang start() na pamamaraan, bago ang tunay na thread ay nilikha. Hindi mo mababago ang uri ng thread pagkatapos itong magsimulang tumakbo."

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

"At yun lang?"

"Oo."

"Gusto kong iguhit muli ang iyong pansin sa proseso ng paglikha at pagsisimula ng isang thread."

"Ang paglikha ng isang Thread object ay hindi gumagawa ng isang thread. Ang isang Thread object ay hindi isang thread. Ang JVM ay lumilikha ng isang thread kapag ang start() na pamamaraan ay tinatawag. Ang isang Thread ay isang espesyal na JVM object na nagbibigay-daan sa iyong ma-access ang impormasyon tungkol sa isang thread at nagbibigay konting kontrol mo diyan."

"I see. Salamat, Ellie."