同步異步和阻塞非阻塞

真正弄明白一個概念的語義,然後站在設計者的角度去改善這個語義的實現方式。如果你想走的更遠,那就跳出用這個概念來描述事物的條條框框,自己創造一套概念系統,用來描述這個領域的事物,解決這個領域的問題。

同步異步

按照分解法的認知,世界上的萬物關係都可以最終劃分爲兩元關係。以下所描述的異步針對的是最簡單的場景(二元場景),假如有個契約的雙方,稱之爲使用方和被使用方。使用方在利用被使用方的服務,使用方在使用服務的過程中,同一個服務所在的系統上下文可以插入其他服務的系統上下文,那它在使用服務的時候就是異步的。也就是說這個服務假如由一個操作序列{1,2,3,4,5…n}和上下文t構成,異步實現就是允許這個服務等價爲t:{1,2,3,4}和t:{5…n}。站在被使用者的角度就沒有這麼一說了,他纔不關心你的情況,他的責任是必須把自己的責任(提供服務)完成才能交代客戶。所以如果被服務方的服務能力不夠,採取任何手段都是沒用的。

阻塞非阻塞

阻塞本質是一種系統的狀態。它是針對系統的整體狀態而言的,但是系統局部的阻塞往往會導致整體的阻塞。系統,最小的系統可以看做是一個線程,也就是cpu最小的執行單位。系統被阻塞住類比於線程被掛起,被剝奪了使用cpu進行計算的能力。

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