執行緒的生命週期

2021-10-08 17:46:40 字數 976 閱讀 3629

關於start()和run()的區別:

start() :

它的作用是啟動乙個新執行緒。

通過start()方法來啟動的新執行緒,處於就緒(可執行)狀態,並沒有執行,一旦得到cpu時間片,就開始執行相應執行緒的run()方法,這裡方法run()稱為執行緒體,它包含了要執行的這個執行緒的內容,run方法執行結束,此執行緒隨即終止。start()不能被重複呼叫。用start方法來啟動執行緒,真正實現了多執行緒執行,即無需等待某個執行緒的run方法體**執行完畢就直接繼續執行下面的**。這裡無需等待run方法執行完畢,即可繼續執行下面的**,即進行了執行緒切換。

run() :

run()就和普通的成員方法一樣,可以被重複呼叫。

如果直接呼叫run方法,並不會啟動新執行緒!程式中依然只有主線程這乙個執行緒,其程式執行路徑還是只有一條,還是要順序執行,還是要等待run方法體執行完畢後才可繼續執行下面的**,這樣就沒有達到多執行緒的目的。

總結:呼叫start方法方可啟動執行緒,而run方法只是thread的乙個普通方法呼叫,還是在主線程裡執行。

public class test 

public static void main(string[

] args)};

t.run();

system.out.print(

"ping");

}}

執行結果:

pongping

總結一下:

start() 可以啟動乙個新執行緒,run()不能

start()不能被重複呼叫,run()可以

start()中的run**可以不執行完就繼續執行下面的**,即進行了執行緒切換。直接呼叫run方法必須等待其**全部執行完才能繼續執行下面的**。

start() 實現了多執行緒,run()沒有實現多執行緒。

執行緒生命週期

今天看到一段這樣的 handle hthread createthread null,0,add,a,0,null hmutext createmutex null,false,l huchiti closehandle hthread 簡單的說,關閉了執行緒控制代碼 關閉了執行緒,其兩者的生命週期...

執行緒生命週期

本章目標 了解執行緒的生命週期 了解執行緒的停止操作 執行緒的生命週期 注意大部分的執行緒生命週期的方法基本上都已經學過了,那麼在這裡有以下三個新方法 suspend 方法 暫時掛起執行緒 resume 方法 恢復掛起的執行緒 stop 方法 停止執行緒 但是對於執行緒中suspend resume...

執行緒生命週期

執行緒的生命週期分為五種狀態 新建狀態 就緒狀態 執行狀態 阻塞狀態 死亡狀態 剛new出來的執行緒物件。新建狀態呼叫start 方法就進入就緒狀態。就緒狀態的執行緒又叫做可執行狀態,表示當前執行緒具有搶奪cpu時間片的權利 cpu時間片就是執行權 當乙個執行緒搶奪到cpu時間片之後就開始執行run...