Java Thread簡介

推到 Twitter!
推到 Plurk!

Thread跟process是有點像又不太像的東西,

一樣是可以同時(?)進行多件事件的方式,但在行為上確不太一樣,

process可以想像是一個cpu,多process可以想成是多個cpu

不同的事件可以經由不同的process做處理,

Thread是在process上以時間做為分格來執行多種事件的方式,

Thread快速在不同事件中切換(同一時間只會執行一個Thread),讓使用者看似同時進行著,

也就是說在同一個時間點上Thread只會有一個,而process可能會有多個,

善用Thread會讓程式更加靈活,不過也可能會因為規畫不當,而讓Thread 暴掉,

底下先用一個簡單的例子說明,二個Thread各自執行的結果:

你可以implements java.lang.Runnable 或是 extends java.lang.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();

  }
}

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

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

延身閱讀

一個回應 to “Java Thread簡介”

  1. 1
    Trackbacks

留下你的留言?