java筆記--守護線程的應用


守護線程的應用

Java中的線程可以分為兩類,即用戶線程和守護線程。
用戶線程是為了完成任務,而守護線程是為其他線程服務

--如果朋友您想轉載本文章請注明轉載地址"http://www.cnblogs.com/XHJT/p/3894292.html "謝謝-- 

守護線程的唯一用途是為其他線程提供服務。守護線程會隨時中斷,
因此不要在守護線程上使用需要釋放資源的資源,如輸入輸出流,數據庫連接等
所有的守護線程都是后台線程,如果虛擬機中只剩下守護線程,虛擬機就會退出

Thread類與守護線程相關方法:

isDaemon() : 測試一個線程是否為守護線程
setDaemon(boolean on) : 講一個線程標記為守護線程或用戶線程

代碼實例:

package com.xhj.thread;

/**
* 守護線程的應用
*
* @author XIEHEJUN
*
*/
public class ModifyDaemonThread implements Runnable {

@Override
public void run() {
System.out.println("運行用戶線程");
for (int i = 0; i < 5; i++) {
System.out.println("Thinking In Java 更新到版本" + i);
}
}

/**
* 利用內部類來建立守護線程
*
* @return
*/
public Thread daemon() {
class Timer implements Runnable {
@Override
public void run() {
System.out.println("運行守護線程");
long currentTime = System.currentTimeMillis();
long processTime = 0;
while (true) {
if (System.currentTimeMillis() - currentTime > processTime) {
processTime = System.currentTimeMillis() - currentTime;
System.out.println("線程運行時間為: " + processTime);
}
}
}
}
Thread daemonThread = new Thread(new Timer());
return daemonThread;
}

public static void main(String[] args) {
try {

Thread userThread = new Thread(new ModifyDaemonThread());
Thread daemonThread = new ModifyDaemonThread().daemon();
// 在執行用戶線程之前,一定要先設置守護線程
daemonThread.setDaemon(true);
userThread.start();
daemonThread.start();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM