"Ini topik baharu dan menarik."

"Ternyata anda boleh memulakan benang dalam mod yang berbeza."

"Atur cara standard (dengan hanya satu utas) berhenti berjalan apabila utas utama menyelesaikan kerjanya. Urutan utama selesai melaksanakan, atur cara ditamatkan dan JVM membebaskan memorinya."

"Jika kami melancarkan benang kanak-kanak, program terus berjalan, walaupun utas utama selesai. JVM tidak ditamatkan selagi terdapat sekurang-kurangnya satu utas berjalan. Setelah semua utas berjalan selesai, atur cara akan ditutup."

"Nah, program besar selalunya mempunyai apa yang dipanggil 'benang perkhidmatan' yang tugasnya adalah untuk memberi perkhidmatan kepada bahagian lain program. Dengan sendirinya, ia tidak diperlukan. Contohnya: mengalih keluar objek yang tidak digunakan (pengumpulan sampah), pembuangan memori dan ralat pembalakan, pelbagai laporan tentang status program semasa, dan sebagainya dan sebagainya."

"Benang perkhidmatan ini diperlukan semasa program berjalan, tetapi ia tidak diperlukan sendiri."

"Ya, saya faham itu."

"Java membenarkan anda menjalankan benang sebagai daemon . Benang sedemikian berfungsi sama seperti yang lain, tetapi jika semua benang bukan daemon dalam program telah ditamatkan dan hanya benang daemon yang tinggal, JVM akan menutup program itu."

"Jadi, mengisytiharkan urutan 'perkhidmatan' hanya bermakna ia tidak dipertimbangkan apabila program ditamatkan. Adakah itu sahaja?"

"Uhhhh... Well, awak pasti cakap pendek dan manis tu. Pada asasnya, itu yang saya nak beritahu awak."

"Brevity adalah bakat. Dan robot berbakat berbakat dalam segala-galanya."

"Ada soalan?"

"Bagaimana anda memulakan benang sebagai daemon? Mewarisi daripada beberapa kelas DaemonThread?"

"Tidak, ia lebih mudah daripada itu. Kelas Thread mempunyai kaedah setDaemon(boolean). Anda hanya perlu memasukkan true dan itu sahaja. Anda hanya perlu memanggilnya sebelum memanggil kaedah start() , sebelum thread sebenar adalah dicipta. Anda tidak boleh menukar jenis benang selepas ia mula berjalan."

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

"Dan itu sahaja?"

"Ya."

"Saya ingin menarik perhatian anda sekali lagi kepada proses mencipta dan memulakan benang."

"Mencipta objek Thread tidak membuat thread. Objek Thread bukan thread. JVM mencipta thread apabila kaedah start() dipanggil. Thread ialah objek JVM khas yang membolehkan anda mengakses maklumat tentang thread dan memberikan anda sedikit mengawalnya."

"Saya faham. Terima kasih, Ellie."