Java線程基礎

來源:互聯網
上載者:User

標籤:介面   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線程基礎

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.