Java Thread setDaemon() 方法



描述

Java Thread setDaemon() 方法將執行緒標記為守護執行緒或使用者執行緒。當僅剩的執行緒都是守護執行緒時,Java虛擬機器就會退出。此方法必須線上程啟動之前呼叫。

宣告

以下是java.lang.Thread.setDaemon() 方法的宣告

public final void setDaemon(boolean on)

引數

on − 如果為 true,則將此執行緒標記為守護執行緒。

返回值

此方法不返回值。

異常

  • IllegalThreadStateException − 如果此執行緒處於活動狀態。

  • SecurityException − 如果當前執行緒無法修改此執行緒。

示例:將守護執行緒設定為 False

以下示例演示了 Java Thread setDaemon() 方法的使用。在此程式中,我們透過擴充套件 Thread 類建立了一個執行緒類 AdminThread。在建構函式中,我們使用 setDaemon() 方法將執行緒狀態設定為非守護執行緒(false)。在 run() 方法中,我們列印執行緒是守護執行緒還是非守護執行緒的狀態。在 main() 方法中,建立了一個 AdminThread 的執行緒,並使用 setDaemon() 方法將其設定為非守護執行緒,然後呼叫 start() 方法執行執行緒。

package com.tutorialspoint;

class AdminThread extends Thread {

   AdminThread() {
      setDaemon(false);
   }

   public void run() {
      boolean d = isDaemon();
      System.out.println("daemon = " + d);
   }
}

public class ThreadDemo {

   public static void main(String[] args) throws Exception {
    
      Thread thread = new AdminThread();
      System.out.println("thread = " + thread.currentThread());
      thread.setDaemon(false);
   
      // this will call run() method
      thread.start();
   }
} 

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

thread = Thread[main,5,main]
daemon = false

示例:將守護執行緒設定為 True

以下示例演示了 Java Thread setDaemon() 方法的使用。在此程式中,我們透過擴充套件 Thread 類建立了一個執行緒類 AdminThread。在建構函式中,我們使用 setDaemon() 方法將執行緒狀態設定為非守護執行緒(false)。在 run() 方法中,我們列印執行緒是守護執行緒還是非守護執行緒的狀態。在 main() 方法中,建立了一個 AdminThread 的執行緒,並使用 setDaemon() 方法將其設定為守護執行緒(true),然後呼叫 start() 方法執行執行緒。

package com.tutorialspoint;

class AdminThread extends Thread {

   AdminThread() {
      setDaemon(false);
   }

   public void run() {
      boolean d = isDaemon();
      System.out.println("daemon = " + d);
   }
}

public class ThreadDemo {

   public static void main(String[] args) throws Exception {
    
      Thread thread = new AdminThread();
      System.out.println("thread = " + thread.currentThread());
      thread.setDaemon(true);
   
      // this will call run() method
      thread.start();
   }
} 

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

thread = Thread[main,5,main]
java_lang_thread.htm
廣告

© . All rights reserved.