Javaのデーモンスレッド:メソッドとは何かを知る



Javaのデーモンスレッドは、バックグラウンドで実行されるユーザースレッドにサービスを提供します。その方法と、ユーザースレッドとの違いを学びます。

スレッドは軽量プロセスです。スレッドは、CPUサイクルの浪費を防ぐことにより、非効率性を低減します。人気のある簡単なプログラミング言語であるJavaは、 。すべてのスレッドには優先順位があり、優先順位の高いスレッドは実行速度が速くなる傾向があります。他のスレッドとは異なり、Javaのデーモンスレッドは、バックグラウンドで実行される優先度の低いスレッドです。

このブログでは、Javaデーモンスレッドを次の順序で紹介します。





始めましょう。 :-)



Java-Javaのデーモンスレッド-Edureka

Javaのデーモンスレッドとは何ですか?

Javaのデーモンスレッドは、バックグラウンドで実行されるユーザースレッドにサービスを提供します。ガベージコレクションなどのタスクを実行するために使用される優先度の低いスレッドと見なされます。 Javaでは、すべてのスレッドに優先順位があり、優先順位の高いスレッドの方が実行速度が速くなる傾向があります。また、 Java仮想マシン(JVM) このスレッドを自動的に終了します。デーモンスレッド自体が実行されている場合でも、すべてのユーザースレッドが実行を終了したときにJVMが終了するのを防ぐことはできません。

anacondapythonの使用方法

次に、デーモンスレッドがユーザースレッド(非デーモン)とどのように異なるかを見てみましょう。



デーモンスレッドとユーザースレッド

デーモンスレッドとユーザースレッドの主な違いは、JVMによるものです。上で説明したように、Java仮想マシンは、ユーザースレッドが終了するのを待つ間、デーモンスレッドが実行を終了するのを待ちません。以下の表を参考にして、デーモンスレッドとユーザースレッドの違いをさらに詳しく見ていきましょう。

デーモンスレッド ユーザースレッド(非デーモン)

デーモンスレッドはJVMによって作成されます

ユーザースレッドは、アプリケーション自体によって作成されます

JVMはその実行を待機しません

JVMは実行が完了するまで待機します

優先度の低いスレッド

優先度の高いスレッド

バックグラウンドタスクに使用されます(重要ではありません)

フォアグラウンドタスクに使用(クリティカル)

人生はユーザースレッドに依存しています

人生は独立しています

デーモンスレッドとユーザースレッドの違いが明確になったので、サンプルプログラムを見て、スレッドがデーモンスレッドであるか非デーモンスレッドであるかを確認しましょう。

public class ExampleThread extends 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()+ 'デーモンスレッド:' + obj.isDaemon())System.out.println( 'is' + Thread.currentThread()。getName ()+ 'デーモンスレッド:' + Thread.currentThread()。isDaemon())}}

出力: スレッド0はデーモンスレッドです:false
ユーザースレッドまたは非デーモンスレッド
メインはデーモンスレッドです:false

次に、Javaのデーモンスレッドでさまざまなメソッドを見てみましょう。

Javaデーモンスレッドのメソッド

Javaのデーモンスレッドには、主に2つの方法があります。

メソッド 説明
public void setDaemon(boolean status)このスレッドをデーモンスレッドまたはユーザースレッド(非デーモンスレッド)としてマークします。
public boolean isDaemon()このスレッドがデーモンスレッドであるかどうかをテストするために使用されます。スレッドがデーモンの場合はtrueを返し、それ以外の場合はfalseを返します。
実際の実装については、以下のコードを検討してください。
public class Demothreadは、Thread {// Javaプログラムを拡張して、// setDaemon()およびisDaemon()メソッドの使用法を示します。 public Demothread(String name){super(name)} public void run(){//スレッドがデーモンかどうかを確認するif(Thread.currentThread()。isDaemon()){System.out.println(getName() + 'はデーモンスレッド')} else {System.out.println(getName()+ 'はユーザースレッド')}} public static void main(String [] args){Demothread thread1 = new Demothread( 'thread1')Demothread thread2 = new Demothread( 'thread2')Demothread thread3 = new Demothread( 'thread3')//ユーザースレッドthread1をデーモンに設定thread1.setDaemon(true)//最初の2つのスレッドを開始thread1.start()thread2.start()/ /ユーザースレッドthread3をデーモンに設定thread3.setDaemon(true)thread3.start()}}

出力:
thread2はユーザースレッドです
thread1はデーモンスレッドです

これで「Javaのデーモンスレッド」ブログは終わりです。私が上で議論した内容を皆さんが明確に理解していることを願っています。私の次のブログを読んでくださいオン ここでは、面接プロセスで区別するのに役立つ上位75の面接の質問と回答をリストしました。

Javaコレクションを理解したので、 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。 EdurekaのJavaJ2EEおよびSOAトレーニングおよび認定コースは、Java開発者になりたい学生および専門家向けに設計されています。このコースは、Javaプログラミングをすぐに開始できるように設計されており、HibernateやSpringなどのさまざまなJavaフレームワークに加えて、コアと高度なJavaの両方の概念についてトレーニングします。

質問がありますか?この「コメントセクションでそれについて言及してくださいJavaのデーモンスレッド」ブログと私たちはできるだけ早くあなたに返信します。

Javaで回文をチェックする方法