Νήμα Daemon στην Java: Μάθετε ποιες είναι οι μέθοδοι



Το νήμα Daemon στην Java παρέχει υπηρεσία στο νήμα χρήστη που εκτελείται στο παρασκήνιο. Μάθετε τις μεθόδους του και πώς διαφέρει από τα θέματα χρήστη.

Ένα νήμα είναι μια ελαφριά διαδικασία. Τα νήματα μειώνουν την αναποτελεσματικότητα αποτρέποντας την σπατάλη των κύκλων CPU. Η Java, που είναι μια δημοφιλής και εύκολη γλώσσα προγραμματισμού, παρέχει ενσωματωμένη υποστήριξη . Κάθε νήμα έχει την προτεραιότητά του και εκείνο με υψηλότερη προτεραιότητα τείνει να εκτελείται γρηγορότερα. Σε αντίθεση με άλλα νήματα, τα νήματα δαίμονα στην Java είναι ένα νήμα χαμηλής προτεραιότητας που τρέχει στο παρασκήνιο.

Αυτό το ιστολόγιο θα σας παρουσιάσει τα νήματα Java Daemon με την ακόλουθη σειρά.





μάθετε pl sql online δωρεάν

Ας αρχίσουμε. :-)



Java - νήμα δαίμονα σε Java - Edureka

Τι είναι το νήμα Daemon στην Java;

Το νήμα Daemon στην Java παρέχει υπηρεσία στο νήμα χρήστη που εκτελείται στο παρασκήνιο. Θεωρείται ένα νήμα χαμηλής προτεραιότητας που χρησιμοποιείται για την εκτέλεση εργασιών όπως η συλλογή απορριμμάτων. Στην Java, κάθε νήμα έχει την προτεραιότητά του και εκείνο με υψηλότερη προτεραιότητα τείνει να εκτελείται πιο γρήγορα. Επίσης, Εικονική μηχανή Java (JVM) τερματίζει αυτό το νήμα αυτόματα. Δεν μπορεί να αποτρέψει την έξοδο του JVM όταν όλα τα νήματα των χρηστών ολοκληρώσουν την εκτέλεση τους, ακόμη και αν το ίδιο το νήμα δαίμονα εκτελείται.

Προχωρώντας, ας δούμε πώς διαφέρουν τα νήματα δαίμονα από τα νήματα χρήστη (χωρίς δαίμονα).



Νήμα Daemon vs Νήματα χρήστη

Η κύρια διαφορά μεταξύ νήματος δαίμονα και νήματος χρήστη οφείλεται στο JVM. Όπως συζητήθηκε παραπάνω, η Java Virtual Machine δεν περιμένει ένα νήμα δαίμονα να ολοκληρώσει την εκτέλεσή του ενώ περιμένει το νήμα του χρήστη να τελειώσει. Ας διερευνήσουμε μερικές ακόμη διαφορές μεταξύ του νήματος Daemon και του νήματος χρήστη με τη βοήθεια ενός παρακάτω πίνακα:

Νήματα Daemon Θέματα χρήστη (Non-daemon)

Τα νήματα Daemon δημιουργούνται από την JVM

Τα νήματα χρήστη δημιουργούνται από μια ίδια την εφαρμογή

Η JVM δεν περιμένει την εκτέλεσή της

Η JVM περιμένει μέχρι να ολοκληρωθεί η εκτέλεση

Νήματα χαμηλής προτεραιότητας

Νήματα υψηλής προτεραιότητας

Χρησιμοποιείται για εργασίες στο παρασκήνιο (δεν είναι κρίσιμες)

Χρησιμοποιείται για εργασίες προσκηνίου (κρίσιμη)

Η ζωή εξαρτάται από τα θέματα του χρήστη

Η ζωή είναι ανεξάρτητη

Τώρα που είστε ξεκάθαροι με τη διαφορά μεταξύ των νήσων daemon έναντι των χρηστών, ας δούμε ένα παράδειγμα προγράμματος για να ελέγξουμε εάν ένα νήμα είναι νήμα δαίμονα ή μη δαίμονα.

δημόσια τάξη Το παράδειγμαThread επεκτείνει το νήμα {@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 () + 'ένα νήμα Daemon:' + Thread.currentThread (). isDaemon ())}}

Παραγωγή: είναι το νήμα-0 ένα νήμα Daemon: false
Νήμα χρήστη ή νήμα χωρίς Daemon
είναι βασικό νήμα Daemon: false

Προχωρώντας, ας δούμε διαφορετικές μεθόδους στο νήμα δαίμονα στην Java.

Μέθοδοι στο Java Daemon Thread

Υπάρχουν δύο βασικές μέθοδοι για ένα νήμα δαίμονα στην Java, δηλαδή:

Μέθοδοι Περιγραφή
public void setDaemon (κατάσταση boolean)Επισημαίνει αυτό το νήμα ως νήμα δαίμονα ή νήμα χρήστη (νήμα χωρίς δαίμονα).
δημόσια boolean isDaemon ()Χρησιμοποιείται για να ελέγξει εάν αυτό το νήμα είναι νήμα δαίμονα ή όχι. Επιστρέφει true αν το νήμα είναι Daemon αλλιώς ψευδές.
Εξετάστε τον παρακάτω κώδικα για πρακτική εφαρμογή:
Η δημόσια κλάση Demothread επεκτείνει το πρόγραμμα Thread {// Java για να δείξει τη χρήση της μεθόδου // setDaemon () και isDaemon (). public Demothread (String name) {super (name)} public void run () {// Έλεγχος εάν το νήμα είναι Daemon ή όχι εάν (Thread.currentThread (). isDaemon ()) {System.out.println (getName () + 'is Daemon thread')} αλλιώς {System.out.println (getName () + 'is User thread')}} δημόσιο στατικό κενό (String [] args) {Demothread thread1 = new Demothread ('thread1') Demothread thread2 = new Demothread ('thread2') Demothread thread3 = new Demothread ('thread3') // Ρύθμιση νήματος νήματος χρήστη1 σε Daemon thread1.setDaemon (true) // ξεκινώντας τα πρώτα 2 νήματα thread1.start () thread2.start () / / Ρύθμιση νήματος χρήστη3 σε Daemon thread3.setDaemon (true) thread3.start ()}}

Παραγωγή:
Το thread2 είναι το νήμα χρήστη
Το νήμα 1 είναι νήμα Daemon

Αυτό είναι το τέλος του blog 'Daemon thread in Java'. Ελπίζω να είστε ξεκάθαροι με το περιεχόμενο που έχω συζητήσει παραπάνω. Διαβάστε το επόμενο blog μουεπί όπου έχω απαριθμήσει τις κορυφαίες 75 ερωτήσεις και απαντήσεις συνέντευξης που θα σας βοηθήσουν να ξεχωρίσετε στη διαδικασία συνέντευξης.

Τώρα που έχετε κατανοήσει τις Συλλογές Java, δείτε το από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Το μάθημα εκπαίδευσης και πιστοποίησης Java J2EE και SOA της Edureka έχει σχεδιαστεί για φοιτητές και επαγγελματίες που θέλουν να γίνουν προγραμματιστές Java. Το μάθημα έχει σχεδιαστεί για να σας δώσει μια πρώτη αρχή στον προγραμματισμό Java και να σας εκπαιδεύσει τόσο για τις βασικές όσο και για τις προηγμένες ιδέες Java μαζί με διάφορα πλαίσια Java όπως το Hibernate & Spring.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του «Νήμα Daemon στην ΙάβαBlog και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.

τι είναι ηχώ στο php