如何部分從BlockingQueue的同步中解脫

2021-10-06 19:00:58 字數 435 閱讀 6388

有人的地方就有江湖,有競爭的地方就要同步.同步也許是通過aqs實現,也許是通過synchronized實現,也許是通過***實現,反正皆有同步,沒有同步兜底的阻塞佇列都是fake news(川普口氣)

in my opinion,我覺得阻塞佇列確實是非常有用的,我覺得其是屠龍之術,能解決基本上所有問題,但是在一些特殊的情況下,我們其實不用屠龍之術,我們可以取巧.當然基於aqs的同步其實已經幫我們取巧了一些,類似於輕量級鎖的cas讓我們如沐春風.但是當競爭確實存在,這些官方取巧之術似乎又沒有那麼多用處.

既然同步無法避免,那麼我們可以選擇去除競爭.

去除競爭,就是採取隔離的方式,將競爭去除,當然也只在一些特殊的情況下使用,但是掌握這個取巧的思想是必要的。

之於分布式事務等複雜的模型,與其隨波逐流使用分布式事務,然後在ca之間困難抉擇,不如直接避免分布式事務.

如何讓Word從文件的不同部分列印選定的頁面

word 列印 對話方塊的 頁面範圍 部分可讓您僅列印所需的頁面。例如,如果您需要列印100頁文件的第1,10和100頁,則在 頁面 文字框中輸入1,10,100。只要您的文件不是由多個部分組成,那麼它就可以工作。例如,假設你有乙個文件分為10個章節,分別在文件的單獨部分中,每個文件分別以1開頭編號...

UIView如何設定部分圓角

給uiview設定四個圓角很簡單 backgroundview.layer cornerradius 12這樣就實現了給背景圖設定4個半徑12的圓角,但是要是只對上半部分或者某乙個角設定圓角效果要怎麼做呢?多數部落格給出的解決方案還是oc版本,這裡貼一下我寫的swift版本解決方案 let mask...

git如何轉殖部分檔案

git1.7.0以後加入了sparse checkout模式,即稀疏轉殖模式 1 建立新資料夾 mkdir project folder 2 定位資料夾 cd project folder 3 初始化git本地倉庫 git init 4 將遠端git 服務端 url加入到git config檔案中 ...