Java中的多線程

1、進程、線程的概念及其區(qū)別

首先,先給出進程的概念,進程指運行中的應用程序,每個進程都有自己獨立的內存空間。一個應用程序可以同時啟動多個進程,如:每次執(zhí)行JDK的java.exe程序,就啟動了一個獨立的java虛擬機進程;而線程指的是進程中的一個執(zhí)行流程,一個進程可以由多個線程組成,即一個進程中可以同時運行多個不同的線程,它們分別執(zhí)行不同的任務。

兩者之間的區(qū)別:

n每個進程都需要操作系統(tǒng)為其分配獨立的內存地址空間

n同一進程中的所有線程在同一塊地址空間中工作,這些線程可以共享 同一塊內存和系統(tǒng)資源,比如共享一個對象或者共享已經打開的一個文件。

2、線程的創(chuàng)建和啟動

首先,先給大家介紹創(chuàng)建線程的方法。創(chuàng)建線程有兩種方法,(1)定義一個Thread類的子類,覆蓋Thread類的run()方法,然后創(chuàng)建該子類的實例;(2)定義一個實現(xiàn)Runnable接口的類,實現(xiàn)它的run()方法,然后將這個類的實例作為Thread的構造方法的參數,創(chuàng)建Thread類的實例。

線程的啟動是通過調用線程對象的start()方法啟動線程。比如,

MyThread t = new MyThread();

t.start();

下面為大家舉例說明兩種不同的創(chuàng)建線程的方法

1、定義一個Thread類的子類

代碼如下:


運行結果如下:


2、定義一個實現(xiàn)Runnable接口的類

代碼如下:


運行結果如下:


3、設置線程名

根據線程的兩種不同的創(chuàng)建方式,設置線程名也有兩種不同的方式。下面我們分類來分析。

1、繼承Thread的子類實現(xiàn)線程

在子類的構造方法中,調用父類構造方法super(name)即可,如下:

class MyThread extendsThread{

public MyThead(String name){

super(name);

}

}

然后在main方法中,可以利用循環(huán)語句,如下:

for(i=0;i<5;i++){

new MyThread(“線程”+i).start();

}

即可為線程設置名稱

2、使用Runnable實現(xiàn)

這個更加簡單,在構造Thread時,直接將接口對象和線程名稱字符串傳入Thread的構造方法即可實現(xiàn),代碼如下:

Thread t= new Thread(myRunnable,”線程”+i);

4、總結

最后給大家總結下多線程的優(yōu)勢:

1、多線程編程簡單,效率高

能直接共享數據和資源(多進程不能)

2、適合于開發(fā)服務程序

如Web服務,聊天服務等

3、適合于開發(fā)有多種交互接口的程序

如聊天程序的客戶端,網絡下載工具

4、適合于有人機交互又有計算量的程序

如字處理程序(Word,Excel)

以上就是我對線程的概念、線程的創(chuàng)建啟動和如何設置線程名的理解,希望對大家有所幫助。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容