Java用戶線程是什么
1.Java語(yǔ)言無(wú)論是線程還是線程池,默認(rèn)都是用戶線程,因此用戶線程也叫普通線程。
2.以線程為例,要查看行程是否為守護(hù)行程,只需通過(guò)調(diào)用isdaemon()方法查詢即可。如果查詢值為false,則表示不是守護(hù)行程,當(dāng)然屬于用戶線程。
實(shí)例
public static void main(String[] args) throws InterruptedException {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("我是子線程");
}
});
System.out.println("子線程==守護(hù)線程:" + thread.isDaemon());
System.out.println("主線程==守護(hù)線程:" + Thread.currentThread().isDaemon());
}
Java守護(hù)線程和用戶線程的區(qū)別
定義不同
用戶線程:平時(shí)使用到的線程均為用戶線程。
守護(hù)線程:用來(lái)服務(wù)用戶線程的線程,例如垃圾回收線程。
作用區(qū)別
1、守護(hù)線程和用戶線程的區(qū)別主要在于Java虛擬機(jī)是后存活。
2、用戶線程:當(dāng)任何一個(gè)用戶線程未結(jié)束,Java虛擬機(jī)是不會(huì)結(jié)束的。守護(hù)線程:如果只剩守護(hù)線程未結(jié)束,Java虛擬機(jī)結(jié)束。
實(shí)例
在主線程中啟動(dòng)守護(hù)線程。
package com.thread.model.threads;
/**
* Hello world!
*
*/
public class ThreadClass
{
public static void main( String[] args )
{
Thread thread = new Thread(new Runnable() {
public void run() {
while(true) {
try {
System.out.println("守護(hù)線程心跳一次");
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
thread.setDaemon(true);//將該線程設(shè)置為守護(hù)線程
thread.start();
try {
Thread.sleep(10000);
Thread currentthread = Thread.currentThread();
System.out.println("主線程"+currentthread.getName()+"退出!");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
以上就是Java用戶線程是什么?Java守護(hù)線程和用戶線程的區(qū)別有哪些,希望對(duì)大家有所幫助。更多關(guān)于“java培訓(xùn)”的問(wèn)題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬(wàn)人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時(shí)歡迎你來(lái)試聽。