標籤:介面 rup 顯示 實現 str new t hello package 單線程
一個線程運行一個順序程式。
在java中,線程一般是java.lang.Thread的子類,它提供了一些方法來建立線程、啟動線程。
掛起線程、等待線程完畢。
首先,建立一個實現Runnable介面的類,該類的run()方法完畢全部的工作。比如。以下是一個列印字串的簡單線程。
package lou.thread;public class HelloWorld implements Runnable {String message;public HelloWorld(String m) {this.message = m;}@Overridepublic void run() {System.out.println(message);}}
我們能夠以一個Runnable對象作為參數來調用Thread類的建構函式,將Runnable對象轉變為線程。例如以下所看到的:
String m = "Hello world form Thread " + i;Thread thread = new Thread(new HelloWorld(m));
java提供一種文法上的捷徑,稱為匿名內部類,它能讓你無需顯示地定義HelloWorld類:
final String m = "Hello world form Thread " + i;thread = new Thread(new Runnable() {@Overridepublic void run(){System.out.println(m);}});
上面的程式段建立一個實現Runnable介面的匿名類,其run()方法的行為已描寫敘述,當線程建立之後,它須要被啟動:
thread.start();
這種方法能使線程執行。
調用該方法的線程將馬上返回。假設調用者打算等待線程結束。怎必須連接線程:
thread.join();
此時調用者會被堵塞直到線程的run()方法返回。
以下給出一個可以初始化多線程、啟動多線程、等待多線程完畢、然後列印一條訊息的方法。
該方法建立一個線程組成的數組。並使用匿名內部類
文法進行初始化。在迴圈結束時。則建立了一個休眠線程組成的數組。
public static void main(String[] args) throws InterruptedException {Thread[] thread = new Thread[8];for (int i = 0; i < thread.length; i++) {final String message = "Hello from thread " + i;thread[i] = new Thread(new Runnable() {@Overridepublic void run() {System.out.println(message);}});}for (int i = 0; i < thread.length; i++) {thread[i].start();}for (int i = 0; i < thread.length; i++) {thread[i].join();}}
Java線程基礎