java多線程(複習-4)高併發基礎概念

一,同步,異步

他們都是形容一次方法調用,同步方法只有等調用者調用返回後 ,纔可以繼續後續的同步方法。時間比較長,浪費cpu的資源

異步方法,調用者調用後就會立即返回,調用者可以繼續後續的操作,異步方法只是在另外一個線程真實的執行。

舉例:同步方法好比 你去商城實體店買一個電器,那麼你就要等着商品出庫然後一起回家安裝

異步方法 好比你在網上買一個電器,下單後,就可以幹別的事,去處去玩啊之類的,最後會有快遞員替你運來商品,替你安裝。

二,併發(concurrency),並行(parallelism)

兩者都表示有兩個或者多線程一起執行,但是着重點不同。

併發,着重於多個任務交替執行。而多個任務之間可能是串行的,

並行是真正意義的同時執行。

實際上,在單個cpu上多個任務的執行是併發執行的,只有在多個cpu時,多個任務的執行時纔有可能並行。

三,臨界區

表示一種公共資源或者是共享數據,可以被多個線程使用。但每次只有一個線程可以使用。加鎖可以理解爲一種臨界區,

 

四,阻塞與非阻塞

這時形容多線程之間的相互影響。

比如一個線程佔用臨界資源,那麼其他線程就必須等待,這就是阻塞,一個線程正在讀取一個文件,那麼其他線程也要操作者個文件,那麼其他線程就必須等待。這時其他線程就處於阻塞狀態。

參考:《Java好併發程序設計》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章