1. 程式人生 > >主執行緒、守護執行緒、非守護執行緒

主執行緒、守護執行緒、非守護執行緒

主執行緒

main,但不是守護執行緒。

守護執行緒

是指在程式執行的時候在後臺提供一種通用服務的執行緒。如gc。

非守護執行緒

也叫使用者執行緒,由使用者建立。

關係:

主執行緒和守護執行緒一起銷燬;

主執行緒和非守護執行緒互不影響。

例如:

package com.peng.thread;

/**
 * 1、使用者執行緒(非守護執行緒)有主執行緒建立
 * 2、守護執行緒和主執行緒一起銷燬
 * @author Fengc
 *
 */
public class ThreadDemo04 {

	public static void main(String[] args) {
		Thread t1 = new Thread(new Runnable() {
			@Override
			public void run() {
				for (int i = 0; i < 10; i++) {
					// 利用Thread.currentThread.getName()獲取當前執行緒名字。
					System.out.println("子執行緒:"+Thread.currentThread().getName() + ":" + i);
				}
				System.out.println("子執行緒執行完畢。。。。");
			}
		});
		t1.start();
		for (int i = 0; i < 5; i++) {
			System.out.println("主執行緒:"+Thread.currentThread().getName() + ":" + i);
		}
		System.out.println("主執行緒執行完畢。。。。");
	}

}

//執行結果
主執行緒:main:0
主執行緒:main:1
子執行緒:Thread-0:0
主執行緒:main:2
子執行緒:Thread-0:1
主執行緒:main:3
子執行緒:Thread-0:2
主執行緒:main:4
子執行緒:Thread-0:3
主執行緒執行完畢。。。。
子執行緒:Thread-0:4
子執行緒:Thread-0:5
子執行緒:Thread-0:6
子執行緒:Thread-0:7
子執行緒:Thread-0:8
子執行緒:Thread-0:9
子執行緒執行完畢。。。。
//主執行緒結束後,子執行緒還在執行。主執行緒不影響子執行緒