Java中多線程原理

1、線程和進程的概念java

  如今的操做系統是多任務操做系統。多線程是實現多任務的一種方式。多線程

  進程是程序的一個動態執行過程,是指一個內存中運行的應用程序,每一個進程都有本身獨立的一塊內存空間,一個進程中能夠啓動多個線程。好比在 Windows系統中,一個運行的exe就是一個進程。線程是指進程中的一個執行流程,一個進程中能夠運行多個線程。好比java.exe進程中能夠運行 不少線程。線程老是屬於某個進程,進程中的多個線程共享進程的內存。「同時」執行是人的感受,在線程之間實際上輪換執行。函數

  2、Java中線程的實現操作系統

  在Java中藥想實現多線程有兩種手段,一種是集成Thread類,另外一種就是實現Runnable接口。下面看繼承自Thread類線程的建立原理:線程

  首先定義一個線程類 該類必須繼承自Thread類,同時必須明確的覆寫run()方法code

  如:對象

1 class MyThread extends Thread{
2
3   public void run(){ //覆寫Thread類中的run方法此方法是線程中
4
5   線程主體; 的主體
6
7   }

而後定義一個主類,實例化線程類的對象,發動啓動線程的命令繼承

如:接口

01 public class ThreadText{
02
03   public stataic void main(String args[]){
04
05   MyThread m1=new MyThread();//實例化對象
06
07   m1.start();//啓動多線程
08
09   }
10
11   };

 實現Runnable接口:進程

  首先定義一個線程類繼承自Runnable接口

  如:

1 class MyThread implements Runnable{
2
3   public void run(){ //覆寫Runnable接口中的run方法
4
5   線程主體;
6
7   }


 而後定義一個主類,實例化線程類的對象,發動啓動線程的命令

  如:

01 public class ThreadText{
02
03   public stataic void main(String args[]){
04
05   MyThread m1=new MyThread();//實例化Runnable子類對象
06
07   Thread t1=new Thread(m1);//實例化Thread類對象
08
09   t1.start();//啓動多線程
10
11   }
12
13   };


  3、線程的幾種狀態

  在Java當中,線程一般都有五種狀態,建立、就緒、運行、阻塞和死亡。

  第一是建立狀態。在生成線程對象,並無調用該對象的start方法,這是線程處於建立狀態。

  第二是就緒狀態。當調用了線程對象的start方法以後,該線程就進入了就緒狀態,可是此時線程調度程序尚未把該線程設置爲當前線程,此時處於就緒狀態。在線程運行以後,從等待或者睡眠中回來以後,也會處於就緒狀態。

  第三是運行狀態。線程調度程序將處於就緒狀態的線程設置爲當前線程,此時線程就進入了運行狀態,開始運行run函數當中的代碼。

  第四是阻塞狀態。線程正在運行的時候,被暫停,一般是爲了等待某個時間的發生(好比說某項資源就緒)以後再繼續運行。sleep,suspend,wait等方法均可以致使線程阻塞。

  第五是死亡狀態。若是一個線程的run方法執行結束或者調用stop方法後,該線程就會死亡。對於已經死亡的線程,沒法再使用start方法令其進入就緒。

相關文章
相關標籤/搜索