Daemon Thread ใน Java: รู้ว่ามันคืออะไร



เธรด Daemon ใน Java จัดเตรียมเซอร์วิสให้กับเธรดผู้ใช้ซึ่งทำงานอยู่เบื้องหลัง เรียนรู้วิธีการและแตกต่างจากเธรดผู้ใช้อย่างไร

ด้ายเป็นกระบวนการที่มีน้ำหนักเบา เธรดช่วยลดความไม่มีประสิทธิภาพโดยการป้องกันไม่ให้วงจร CPU เสียไป Java ซึ่งเป็นภาษาโปรแกรมยอดนิยมและใช้งานง่ายให้การสนับสนุนในตัว . ทุกเธรดมีลำดับความสำคัญและเธรดที่มีลำดับความสำคัญสูงกว่ามีแนวโน้มที่จะดำเนินการเร็วกว่า ซึ่งแตกต่างจากเธรดอื่น daemon เธรดใน Java เป็นเธรดที่มีลำดับความสำคัญต่ำซึ่งทำงานในพื้นหลัง

บล็อกนี้จะแนะนำคุณเกี่ยวกับเธรด Java Daemon ตามลำดับต่อไปนี้





มาเริ่มกันเลย. :-)



Java - เธรด daemon ใน Java - Edureka

Daemon Thread ใน Java คืออะไร?

เธรด Daemon ใน Java จัดเตรียมเซอร์วิสให้กับเธรดผู้ใช้ซึ่งทำงานอยู่เบื้องหลัง ถือว่าเป็นเธรดที่มีลำดับความสำคัญต่ำซึ่งใช้ในการทำงานเช่นการรวบรวมขยะ ใน java ทุกเธรดมีลำดับความสำคัญและเธรดที่มีลำดับความสำคัญสูงกว่ามีแนวโน้มที่จะดำเนินการเร็วกว่า นอกจากนี้ Java Virtual Machine (JVM) ยุติเธรดนี้โดยอัตโนมัติ ไม่สามารถป้องกันไม่ให้ JVM ออกเมื่อเธรดผู้ใช้ทั้งหมดเสร็จสิ้นการเรียกใช้งานแม้ว่า daemon thread จะรันอยู่ก็ตาม

ในขั้นต่อไปเรามาดูกันว่าเธรด daemon แตกต่างจากเธรดผู้ใช้อย่างไร (ที่ไม่ใช่ daemon)



Daemon Thread กับ User Threads

ความแตกต่างที่สำคัญระหว่างเธรด daemon และเธรดผู้ใช้เป็นเพราะ JVM ตามที่กล่าวไว้ข้างต้น Java Virtual Machine ไม่รอให้เธรด daemon เสร็จสิ้นการดำเนินการในขณะที่รอให้เธรดผู้ใช้ทำงานจนเสร็จสิ้น มาสำรวจความแตกต่างเพิ่มเติมระหว่างเธรด Daemon และเธรดผู้ใช้ด้วยความช่วยเหลือจากตารางด้านล่าง:

เธรด Daemon เธรดผู้ใช้ (ไม่ใช่ daemon)

เธรด Daemon ถูกสร้างโดย JVM

เธรดผู้ใช้ถูกสร้างขึ้นโดยแอปพลิเคชันเอง

JVM ไม่รอให้ดำเนินการ

JVM รอจนกว่าการดำเนินการจะเสร็จสิ้น

เธรดที่มีลำดับความสำคัญต่ำ

เธรดที่มีลำดับความสำคัญสูง

ใช้สำหรับงานเบื้องหลัง (ไม่สำคัญ)

ใช้สำหรับงานเบื้องหน้า (สำคัญ)

ชีวิตขึ้นอยู่กับเธรดของผู้ใช้

ชีวิตมีความเป็นอิสระ

เมื่อคุณเข้าใจความแตกต่างระหว่าง daemon กับเธรดผู้ใช้แล้วให้เราดูตัวอย่างโปรแกรมเพื่อตรวจสอบว่าเธรดเป็นเธรด daemon หรือไม่ใช่ daemon

ความแตกต่างระหว่าง qtp และซีลีเนียม
คลาสสาธารณะ ExampleThread ขยายเธรด {@Override public void run () {System.out.println ('User Thread or Non-Daemon Thread')} public static void main (String [] args) {ExampleThread obj = new ExampleThread () obj .start () System.out.println ('is' + obj.getName () + 'a Daemon Thread:' + obj.isDaemon ()) System.out.println ('is' + Thread.currentThread (). getName () + 'เธรดภูต:' + Thread.currentThread (). isDaemon ())}}

เอาท์พุต: คือ Thread-0 a Daemon Thread: false
User Thread หรือ Non-Daemon Thread
เป็นหัวข้อหลัก Daemon Thread: false

ต่อไปเรามาดูวิธีการต่างๆใน daemon thread ใน Java

วิธีการใน Java Daemon Thread

มีสองวิธีหลักสำหรับเธรด daemon ใน Java ได้แก่ :

วิธีการ คำอธิบาย
โมฆะสาธารณะ setDaemon (สถานะบูลีน)ทำเครื่องหมายเธรดนี้เป็นเธรด daemon หรือเธรดผู้ใช้ (เธรดที่ไม่ใช่ daemon)
บูลีนสาธารณะ isDaemon ()ใช้เพื่อทดสอบว่าเธรดนี้เป็นเธรด daemon หรือไม่ ส่งคืนจริงถ้าเธรดเป็น Daemon else false
พิจารณารหัสด้านล่างสำหรับการนำไปใช้จริง:
คลาสสาธารณะ Demothread ขยายเธรด {// โปรแกรม Java เพื่อสาธิตการใช้เมธอด // setDaemon () และ isDaemon () สาธารณะ Demothread (ชื่อสตริง) {super (name)} public void run () {// การตรวจสอบว่าเธรดเป็น Daemon หรือไม่ถ้า (Thread.currentThread () isDaemon ()) {System.out.println (getName () + 'is Daemon thread')} else {System.out.println (getName () + 'is User thread')}} public static void main (String [] args) {Demothread thread1 = new Demothread ('thread1') Demothread thread2 = new Demothread ('thread2') Demothread thread3 = new Demothread ('thread3') // การตั้งค่าเธรดผู้ใช้ thread1 เป็น Daemon thread1.setDaemon (true) // เริ่มต้น 2 เธรดแรก thread1.start () thread2.start () / / การตั้งค่าเธรดผู้ใช้ thread3 เป็น Daemon thread3.setDaemon (true) thread3.start ()}}

เอาท์พุต:
thread2 คือเธรดผู้ใช้
thread1 คือ Daemon thread

นี่คือจุดสิ้นสุดของบล็อก“ Daemon thread in Java” ฉันหวังว่าพวกคุณจะชัดเจนกับเนื้อหาที่ฉันได้กล่าวไว้ข้างต้น อ่านบล็อกถัดไปของฉันบน ที่ฉันได้ระบุคำถามและคำตอบสัมภาษณ์ 75 อันดับแรกซึ่งจะช่วยให้คุณแยกส่วนในกระบวนการสัมภาษณ์

เมื่อคุณเข้าใจ Java Collections แล้วให้ตรวจสอบไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ออกแบบมาสำหรับนักเรียนและผู้เชี่ยวชาญที่ต้องการเป็น Java Developer หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นการเขียนโปรแกรม Java และฝึกอบรมแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับเฟรมเวิร์ก Java ต่างๆเช่น Hibernate & Spring

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของ 'เธรด Daemon ใน Java” บล็อกและเราจะติดต่อกลับโดยเร็วที่สุด