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)建啟動和如何設置線程名的理解,希望對大家有所幫助。