總網頁瀏覽量

2011年12月30日 星期五

16章 多執行緒

16章 多執行緒

start()
進入待命狀態 可執行狀態

run()
執行狀態

wait()
進入等待狀態

notify()
讓某個等待中的執行緒回到待命狀態

notifyAll()
讓該物件的所有等待的執行緒 回到待命狀態

interrupt()
設定該執行緒的中斷旗標 拋出例外

sleep()單位毫秒
使執行緒進入休眠狀態 休眠時間到後回到待命狀態

join()
結合兩個執行緒

設置優先權:
Thread.MIN_PRIORITY 1
Thread.MAX_PRIORITY 10
Thread.NORM_PRIORITY 5

setPriority()
getPriority()
yield() 讓其他執行緒有執行的機會

Thread.currentThread().getName() 取得目前執行執行緒的名稱


參考: http://programming.im.ncnu.edu.tw/J_index.html

繼承Thread寫法
public class ThreadExample1 extends Thread {
 public void run() { // override Thread's run()
  System.out.println("Here is the starting point of Thread.");
  for (;;) { // infinite loop to print message
  System.out.println("User Created Thread");
  }
 }
 public static void main(String[] argv) {
  Thread t = new ThreadExample1(); // 產生Thread物件
  t.start(); // 開始執行t.run()
  for (;;) {
   System.out.println("Main Thread");
  }
 }
}

實現Runnable介面寫法
public class ThreadExample2 implements Runnable {
	public void run() { // implements Runnable run()
		System.out.println("Here is the starting point of Thread.");
		for (;;) { // infinite loop to print message
		System.out.println("User Created Thread");
		}
	}
	public static void main(String[] argv) {
		Thread t = new Thread(new ThreadExample2()); // 產生Thread物件
		t.start(); // 開始執行Runnable.run();
		for (;;) {
		System.out.println("Main Thread");
		}
	}
}








沒有留言:

張貼留言