java執行緒的補充

2021-08-28 03:18:20 字數 599 閱讀 2962

wait方法和sleep方法很類似,都是處於等待狀態,但是不同的是,wait方法執行後會釋放鎖物件.

兩種方法的區別:

1.start方法

用 start方法來啟動執行緒,是真正實現了多執行緒, 通過呼叫thread類的start()方法來啟動乙個執行緒,這時此執行緒處於就緒(可執行)狀態,並沒有執行,一旦得到cpu時間片,就開始執行run()方法。但要注意的是,此時無需等待run()方法執行完畢,即可繼續執行下面的**。所以run()方法並沒有實現多執行緒。

2.run方法

run()方法只是類的乙個普通方法而已,如果直接呼叫run方法,程式中依然只有主線程這乙個執行緒,其程式執行路徑還是只有一條,還是要順序執行,還是要等待run方法體執行完畢後才可繼續執行下面的**。

sleep 是執行緒類(thread)的方法,導致此執行緒暫停執行指定時間,給執行機會給其他執行緒,但是監控 狀態依然保持,到時後會自動恢復。呼叫 sleep 不會釋放物件鎖。

wait 是 object 類的方法,對此物件呼叫 wait 方法導致本執行緒放棄物件鎖,進入等待此物件的等待鎖定池,只有針對此物件發出 notify 方法(或 notifyall)後本執行緒才進入物件鎖定池準備獲得對 象鎖進入執行狀態。

java例程練習(關於執行緒同步的補充)

從執行結果看,當m1 方法被鎖定後,m2 方法仍然可以執行。而且b的值被改變。由此可以得出結論 sychronized 只是防止其定義的 段被同時呼叫。public class test implements runnable public void m2 public void run catch...

多執行緒補充

標籤 空格分隔 多執行緒 pragma mark 延遲執行 void delay pragma mark 只執行一次 void once pragma mark 快速迭代 獲取 資料夾路徑和目的資料夾路徑 nsstring source users v desktop source nsstring...

程序執行緒補充

multiprocessing.current process 顯示當前程序 threading.current thread 顯示當前執行緒pro name.join thr name.join pro name.terminate multiprocessing.current process ...