Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java의 사용자 스레드 대 데몬 스레드?


데몬 스레드 일반적으로 사용자 스레드에 대한 서비스를 수행하는 데 사용됩니다. main() 메서드 애플리케이션 스레드의 사용자 스레드(데몬이 아닌 스레드) . JVM 모든 사용자 스레드(데몬 아님)가 아니면 종료되지 않습니다. 종료합니다. 사용자 스레드에 의해 생성된 스레드를 명시적으로 지정할 수 있습니다. setDaemon(true)을 호출하여 데몬 스레드가 됩니다. . isDaemon() 메서드를 사용하여 스레드가 데몬 스레드인지 확인하려면 .

예시

public class UserDaemonThreadTest extends Thread {
   public static void main(String args[]) {
      System.out.println("Thread name is : "+ Thread.currentThread().getName());
      // Check whether the main thread is daemon or user thread
      System.out.println("Is main thread daemon ? : "+ Thread.currentThread().isDaemon());
      UserDaemonThreadTest t1 = new UserDaemonThreadTest();
      UserDaemonThreadTest t2 = new UserDaemonThreadTest();
      // Converting t1(user thread) to a daemon thread
      t1.setDaemon(true);
      t1.start();
      t2.start();
   }
   public void run() {
      // Checking threads are daemon or not
      if (Thread.currentThread().isDaemon()) {
         System.out.println(Thread.currentThread().getName()+" is a Daemon Thread");
      } else {
         System.out.println(Thread.currentThread().getName()+" is an User Thread");
      }
   }
}

출력

Thread name is : main
Is main thread daemon ? : false
Thread-0 is a Daemon Thread
Thread-1 is an User Thread