2010年7月21日 星期三

Java Thread 之一

===== Java Thread 簡介 =====

Thread 中文翻成 線程

但記得在我看過的JAVA書裡有書翻成 執行緒

Thread 用途:

Thread 用於在同一時間執行多事件,

相當類似於Process

但兩者的區別在於

Process: 要把Process想成 CPU, 多個Process 代表多個CPU 而是每個Process去執行各個不同的程式

Thread: 代表分成很多工作 但是在同一個Process 裡執行, 只是一直切換工作執行, 所以看起來Thread是同時執行的

所以在同一時間

Process 可以同時有許多個,

但Thread 在同一時間內只有一個,只是他切 換的速度很快所以乍看之下,所有事情都是同時執行

public class TestThread extends java.lang.Thread {

public long waittime;
public String data;

public TestThread(long waittime, String value) {
this.waittime = waittime;
this.data = value;
}

public void run()// 啟動Thread時會執行run
{
try {
while (true) {// 永遠讓Thread執行下去,只有在強制中斷時才會失效
// 停幾秒後執行System內容
Thread.sleep(waittime);
System.out.println(this.data);
}
} catch (Exception e) {
e.printStackTrace();
}

}

public static void main(String args[]) {
// 1000毫秒 = 1秒
// 用start 來啟動thread
(new TestThread(3 * 1000, "Thread-1")).start();
(new TestThread(1 * 1000, "Thread-2")).start();

}
}


備註: 當從主程式(main)呼叫 TestThread時 會先把參數帶給建構子,然後
自 動跑 Class TestThread 中的 Run (方法)

結果如下:(可能會有所不同)

Thread-2
Thread-2
Thread-1
Thread-2
Thread-2
Thread-2
Thread-1
Thread-2
Thread-2
Thread-2

......

沒有留言:

張貼留言