Daemon Thread trong Java: Biết nó là những phương thức nào



Luồng Daemon trong Java cung cấp dịch vụ cho luồng người dùng chạy ở chế độ nền. Tìm hiểu các phương pháp của nó và nó khác với các luồng người dùng như thế nào.

Một luồng là một quá trình nhẹ. Các luồng làm giảm sự kém hiệu quả bằng cách ngăn chặn sự lãng phí các chu kỳ CPU. Java, là một ngôn ngữ lập trình phổ biến và dễ dàng, cung cấp hỗ trợ tích hợp để . Mọi luồng đều có mức ưu tiên của nó và luồng có mức ưu tiên cao hơn có xu hướng thực thi nhanh hơn. Không giống như các luồng khác, luồng daemon trong Java là một luồng có mức độ ưu tiên thấp chạy ở chế độ nền.

Blog này sẽ giới thiệu cho bạn các luồng Java Daemon theo thứ tự sau.





Bắt đầu nào. :-)



Java - chuỗi daemon trong Java - Edureka

Daemon Thread trong Java là gì?

Luồng Daemon trong Java cung cấp dịch vụ cho luồng người dùng chạy ở chế độ nền. Nó được coi là một luồng có mức độ ưu tiên thấp được sử dụng để thực hiện các tác vụ như thu gom rác. Trong java, mọi luồng đều có mức ưu tiên của nó và luồng có mức ưu tiên cao hơn có xu hướng thực thi nhanh hơn. Cũng thế, Máy ảo Java (JVM) tự động chấm dứt chủ đề này. Nó không thể ngăn JVM thoát ra khi tất cả các luồng người dùng hoàn thành việc thực thi, ngay cả khi bản thân luồng daemon đang chạy.

Tiếp tục, hãy xem các luồng daemon khác với các luồng người dùng (không phải daemon) như thế nào.



Chủ đề Daemon so với Chủ đề người dùng

Sự khác biệt chính giữa luồng daemon và luồng người dùng là do JVM. Như đã thảo luận ở trên, Máy ảo Java không đợi một luồng daemon kết thúc quá trình thực thi của nó trong khi nó đợi luồng người dùng kết thúc. Hãy cùng khám phá thêm một số điểm khác biệt giữa chuỗi Daemon và chuỗi người dùng với sự trợ giúp của bảng bên dưới:

Daemon Threads Chủ đề người dùng (Không phải daemon)

Các luồng daemon được tạo bởi JVM

Chủ đề người dùng được tạo bởi chính một ứng dụng

JVM không đợi thực thi

JVM đợi cho đến khi quá trình thực thi hoàn tất

Chủ đề mức độ ưu tiên thấp

Chủ đề ưu tiên cao

Được sử dụng cho các tác vụ nền (không quan trọng)

Được sử dụng cho các nhiệm vụ tiền cảnh (quan trọng)

Cuộc sống phụ thuộc vào chủ đề của người dùng

Cuộc sống độc lập

Bây giờ bạn đã rõ sự khác biệt giữa luồng daemon và luồng người dùng, chúng ta hãy xem một chương trình ví dụ để kiểm tra xem một luồng là một luồng daemon hay không phải là daemon.

sang phương thức chuỗi trong java
public class exampleThread mở rộng Thread {@Override public void run () {System.out.println ('User Thread hoặc 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 () + 'a Daemon Thread:' + Thread.currentThread (). isDaemon ())}}

Đầu ra: Thread-0 có phải là một Chủ đề Daemon: false
Chủ đề người dùng hoặc Chủ đề không phải Daemon
chính là một Chủ đề Daemon: false

Tiếp tục, chúng ta hãy xem các phương thức khác nhau trong chuỗi daemon trong Java.

Các phương thức trong Java Daemon Thread

Có hai phương thức chính cho một luồng daemon trong Java, đó là:

Phương pháp Sự miêu tả
public void setDaemon (trạng thái boolean)Đánh dấu luồng này là một luồng daemon hoặc một luồng người dùng (luồng không phải daemon).
public boolean isDaemon ()Được sử dụng để kiểm tra xem luồng này có phải là một luồng daemon hay không. Trả về true nếu luồng là Daemon khác sai.
Hãy xem xét đoạn mã dưới đây để triển khai thực tế:
public class Demothread mở rộng Thread {// chương trình Java để chứng minh cách sử dụng // setDaemon () và isDaemon (). public Demothread (String name) {super (name)} public void run () {// Kiểm tra luồng có phải là Daemon hay không if (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') // Đặt luồng người dùng thread1 thành Daemon thread1.setDaemon (true) // bắt đầu 2 chủ đề đầu tiên thread1.start () thread2.start () / / Đặt luồng người dùng thread3 thành Daemon thread3.setDaemon (true) thread3.start ()}}

Đầu ra:
thread2 là chủ đề Người dùng
thread1 là luồng Daemon

Đây là phần cuối của blog “Daemon thread trong Java”. Tôi hy vọng các bạn đã rõ với nội dung tôi đã trình bày ở trên. Đọc blog tiếp theo của tôitrên nơi tôi đã liệt kê 75 câu hỏi và câu trả lời phỏng vấn hàng đầu sẽ giúp bạn tạo ra sự khác biệt trong quá trình phỏng vấn.

Bây giờ bạn đã hiểu Bộ sưu tập Java, hãy xem của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Khóa đào tạo và cấp chứng chỉ về Java J2EE và SOA của Edureka được thiết kế cho sinh viên và các chuyên gia muốn trở thành Nhà phát triển Java. Khóa học được thiết kế để cung cấp cho bạn khởi đầu về lập trình Java và đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với các khung Java khác nhau như Hibernate & Spring.

Có một câu hỏi cho chúng tôi? Hãy đề cập đến nó trong phần nhận xét của điều này “Chuỗi Daemon trong Java”Và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.