Java Runnable 用法
Java 提供了兩種執行緒方式:
第一種是繼承 java.lang package 下的 Thread 類別,覆寫 Thread 類別的 run() 方法,在 run() 中實作執行緒的程式碼。
第二種是實作 Runnable 介面建立多執行緒。
下面就介紹一下這兩種方式,先看基本的執行緒程式範例,
public class example {
public static void main(String[] args) {
MyThread myThread = new MyThread(); // 建立 myThread 物件
myThread.run();
while (true) {
System.out.println("Main");
}
}
}
class MyThread {
public void run() {
while (true) {
System.out.println("MyThread run()");
}
}
}
會發現結果是單執行緒。
繼承 Thread 類別建立多執行緒
把以上程式碼進行簡單修改,差別在於上例子用的是 MyThread.run()
,這邊使用的是 MyThread.start()
且 MyThread 繼承 Thread 類別,
public class example {
public static void main(String[] args) {
MyThread myThread = new MyThread(); // 建立執行緒 myThread 的執行緒物件
myThread.start(); // 開啟執行緒
while (true) {
System.out.println("Main");
}
}
}
class MyThread extends Thread {
public void run() {
while (true) {
System.out.println("MyThread run()");
}
}
}
實作 Runnable 介面建立多執行緒
因為繼承 Thread 類別實現多執行緒有一定的侷限性,所以有了 Runnable,使用方法為實作 Runnable 介面 (實作 run 函式),之後在傳給 Thread 建構子即可。
public class example {
public static void main(String[] args) {
MyRunnable myRunnable = new MyRunnable(); // 建立執行緒 myRunnable 的執行緒物件
Thread thread = new Thread(myRunnable); // 建立執行緒物件
thread.start(); // 開啟執行緒,執行 Thread 中的 run()
while (true) {
System.out.println("Main");
}
}
}
class MyRunnable implements Runnable {
public void run() {
while (true) {
System.out.println("MyRunnable run()");
}
}
}
參考
java中runnable的用法解析
他直接介紹 runnable 用法
java之多執行緒中Thread類和Runnable介面使用方法
寫得不錯,有循序性,他先說 Thread 怎麼用,再說 Runnable 跟 Thread 的差異。
留言
張貼留言