學習java多執行緒概念

2021-09-22 18:05:43 字數 666 閱讀 3391

同步和非同步的區別:

同步,synchronous,即呼叫方法開始,一旦呼叫就必須等待方法執行完返回才能繼續下面的操作。舉個例子,你去銀行atm取錢,你必須等到atm吐完錢你拿到錢取完卡你才能離開。

非同步,asynchronous,即不關心方法執行的過程,觸發要呼叫的方法就繼續執行下面的操作,不會像同步那樣阻塞直要到方法完成才繼續。

併發和並行的區別:

併發,concurrency,即一段時間內多個任務在執行,但不一定是同時在執行,它們可能是交替在執行,也有可能是序列執行的。

並行,parallelism,這個就是多個任務在同時執行,可以理解為併發裡面有一部分任務在並行執行。

單核cpu不會有並行操作,應為乙個cpu一次只能執行一條指令,並行操作只存在於多核cpu中。

阻塞和非阻塞的區別:

阻塞,blocking,如果乙個執行緒占用了乙個公共資源而沒有釋放對它的鎖,另外別的一些執行緒想要繼續執行就只能等它釋放鎖,這時候就造成阻塞了。

非阻塞,non-blocking,就是沒有阻塞,執行緒可以自由執行,沒有鎖定公共資源,不相互阻塞執行。

java多執行緒 基礎概念

join 方法 在很多情況下,主線程生成並起動了子執行緒,如果子執行緒裡要進行大量的耗時的運算,主線程往往將於子執行緒之前結束,但是如果主線程處理完其他的事務後,需要用到子執行緒的處理結果,也就是主線程需要等待子執行緒執行完成之後再結束,這個時候就要用到join 方法了。wait方法 呼叫obj的w...

java多執行緒 多執行緒的基本概念

基本概念 同步和非同步 同步 操作一旦開始,呼叫者必須等到方法呼叫返回後,操作才能繼續進行。非同步 操作開始後,不必等到方法返回,即可開始其他操作。並行和併發 並行 假設有兩個cpu同時執行不同的執行緒,叫並行。併發 有乙個cpu,一會兒執行這個執行緒,一會兒執行那個執行緒,叫併發。臨界區 是值公共...

Java多執行緒之基礎概念

執行緒狀態的扭轉圖如下 time waiting 限期等待狀態,不會分配cpu時間片,睡眠時間到或等待一定的時間後自動喚醒。以下方法會讓執行緒進入該狀態 dead 死亡狀態,執行緒正常執行完了或因異常退出了run 方法,該執行緒結束生命週期 interrupt 方法 中斷執行緒,本質是將某執行緒的中...