Java 多線程實現的兩種方式

來源:互聯網
上載者:User

標籤:多線程

如何寫一個 線程程式:

方式一:

1)寫一個類繼承Thread類,重寫run()方法

2)建立這個類的對象,調用start()

代碼:

MyThread--->提供一個構造方法調用父類的構造方法 為了是給線程提供一個名字!

package cn.itcast.thread;public class MyThread extends Thread{private String name; public MyThread(String name){//通過構造方法的方式來為線程傳遞名臣 super(name); }@Overridepublic void run() {for(int i=0;i<100;i++){System.out.println(getName()+":"+i);}}}
測試類別:

package cn.itcast.thread;public class MyThreadTest {public static void main(String[] args) {MyThread my1=new MyThread("李衛康");MyThread my2=new MyThread("韓瑋");my1.start();my1.setName("王超");///設定線程的名字my2.start();System.out.println(Thread.currentThread().getName());}}
方式二:

1)寫一個類實現runable介面

2)建立一個Thread對象傳入剛才寫好的類

3)調用start方法

代碼:

MyRunable

package cn.itcast.runable;public class MyRunable implements Runnable{@Overridepublic void run() {for(int i=0;i<10;i++){System.out.println(Thread.currentThread().getName()+":"+i);}}}
MyRunableTest

package cn.itcast.runable;public class MyRunableTest {public static void main(String[] args) {MyRunable my=new MyRunable();Thread t1=new Thread(my);t1.start();}}
解釋:線程的執行流程是怎麼樣的?






面試題:

調用線程類的run方法和執行start方法有什麼區別?

Start:用start方法來啟動線程,真正實現了多線程運行,這時無需等待run方法體代碼執行完畢而直接繼續執行下面的代碼。通過調用Thread類的start()方法來啟動一個線程,這時此線程處於就緒(可運行)狀態,並沒有運行,一旦得到spu時間片,就開始執行run()方法,這裡方法run()稱為線程體,它包含了要執行的這個線程的內容,Run方法運行結束,此線程隨即終止。Run:run()方法只是類的一個普通方法而已,如果直接調用Run方法,程式中依然只有主線程這一個線程,其程式執行路徑還是只有一條,還是要順序執行,還是要等待run方法體執行完畢後才可繼續執行下面的代碼,這樣就沒有達到寫線程的目的。總結:調用start方法方可啟動線程,而run方法只是thread的一個普通方法調用,還是在主線程裡執行。


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

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.