Демонический поток в Java: узнайте, что это за методы



Поток демона в Java предоставляет обслуживание пользовательскому потоку, который выполняется в фоновом режиме. Изучите его методы и чем он отличается от пользовательских потоков.

Поток - это легкий процесс. Потоки снижают неэффективность, предотвращая бесполезную трату циклов процессора. Java, будучи популярным и простым языком программирования, обеспечивает встроенную поддержку . Каждый поток имеет свой приоритет, а поток с более высоким приоритетом имеет тенденцию выполняться быстрее. В отличие от других потоков, потоки демона в Java - это поток с низким приоритетом, который выполняется в фоновом режиме.

Этот блог познакомит вас с потоками Java Daemon в следующем порядке.





обработка исключений pl / sql

Давайте начнем. :-)



Java - поток демона в Java - Edureka

Что такое поток демона в Java?

Поток демона в Java предоставляет обслуживание пользовательскому потоку, который выполняется в фоновом режиме. Считается, что это поток с низким приоритетом, который используется для выполнения таких задач, как сборка мусора. В java каждый поток имеет свой приоритет, а поток с более высоким приоритетом имеет тенденцию выполняться быстрее. Также, Виртуальная машина Java (JVM) автоматически завершает этот поток. Он не может предотвратить выход JVM, когда все пользовательские потоки завершат свое выполнение, даже если сам поток демона запущен.

Забегая вперед, давайте посмотрим, чем потоки демонов отличаются от потоков пользователей (не-демонов).



Демонический поток против пользовательских потоков

Основное различие между потоком демона и потоком пользователя связано с JVM. Как обсуждалось выше, виртуальная машина Java не ожидает завершения потока демона, пока он ожидает завершения пользовательского потока. Давайте рассмотрим еще несколько различий между потоком демона и потоком пользователя с помощью приведенной ниже таблицы:

Демонические потоки Пользовательские потоки (не-демон)

Потоки демона создаются JVM

Пользовательские потоки создаются самим приложением

JVM не ждет своего исполнения

JVM ждет, пока выполнение не завершится

Потоки с низким приоритетом

Потоки с высоким приоритетом

Используется для фоновых задач (не критично)

Используется для задач переднего плана (критично)

Жизнь зависит от пользовательских потоков

Жизнь независима

Теперь, когда вы понимаете разницу между демонами и пользовательскими потоками, давайте посмотрим на пример программы, чтобы проверить, является ли поток потоком демона или не-демона.

открытый класс 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 потоком демона: false
Пользовательский поток или поток без демона
является основным потоком демона: false

Забегая вперед, давайте рассмотрим различные методы в потоке демона в Java.

Методы в Java Daemon Thread

В Java есть два основных метода для потока демона, а именно:

Методы Описание
public void setDaemon (логический статус)Помечает этот поток либо как поток демона, либо как поток пользователя (не-демонический поток).
публичное логическое isDaemon ()Используется для проверки того, является ли этот поток потоком демона или нет. Возвращает true, если поток является Daemon else false.
Рассмотрим приведенный ниже код для практической реализации:
открытый класс Demothread расширяет программу Java Thread {// для демонстрации использования // методов setDaemon () и isDaemon (). public Demothread (String name) {super (name)} public void run () {// Проверяем, является ли поток Daemon или нет 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') // Установка пользовательского потока thread1 на Daemon thread1.setDaemon (true) // запуск первых двух потоков thread1.start () thread2.start () / / Установка пользовательского потока thread3 на Daemon thread3.setDaemon (true) thread3.start ()}}

Вывод:
thread2 - поток пользователя
thread1 - это поток демона

Это конец блога «Поток демонов в Java». Я надеюсь, что вам понятно содержание, о котором я говорил выше. Прочтите мой следующий блогна Я перечислил 75 основных вопросов и ответов на собеседование, которые помогут вам выделиться в процессе собеседования.

Теперь, когда вы разобрались с коллекциями Java, ознакомьтесь с от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Курс обучения и сертификации по Java J2EE и SOA от Edureka предназначен для студентов и профессионалов, которые хотят стать Java-разработчиками. Курс разработан, чтобы дать вам хорошее начало в программировании на Java и обучить вас как основным, так и продвинутым концепциям Java, а также различным средам Java, таким как Hibernate и Spring.

Есть вопрос к нам? Пожалуйста, укажите это в комментариях к этому “Поток демона в Java», И мы свяжемся с вами в ближайшее время.

Java найти наибольшее число в массиве