鎖在應用層的優化思路

2021-07-05 18:54:13 字數 372 閱讀 8183

減少鎖的持有時間

減小鎖粒度

比如:concurrenthashmap中增加乙個表項,並不是將整個hashmap加鎖,而是首先根據hashcode得到該表項應該被存放到哪個段中,然後對該段加鎖,並完成put()操作。在多執行緒環境中,如果多個執行緒同時進行put()操作,只要被加入的表項不存放在同乙個段中,則執行緒間便可以做到真正的併發。

鎖分離依據應用程式的功能特點,將乙個獨佔鎖分成多個鎖。如:linkedblockingqueue中使用reentrantlock定義兩個鎖,takelock和putlock,實現了取資料和寫資料的分離。

鎖粗化如果對同乙個鎖不停地進行請求、同步和釋放,其本身也會消耗系統寶貴的資源,反而不利於效能的優化。

Android網路優化 應用層策略

網路效能指標 1.建立連線的速度 2.傳輸速度 3.到達率 tcp ip底層已經有錯誤重傳機制,但是並不是專門為移動端設計的 4.長連線的存活率 優化切入口 1.dns優化 一般是優化的首選 使用httpdns替代localdns dns是指根據網域名稱查出ip位址,是http協議的前提,所以網路優...

表示層 應用層

表示層 功能 為異種機通訊提供一種公共語言,以便能進行互操作。這種型別的服務之所以需要,是因為不同的計算機體系結構使用的資料表示法不同。例如,ibm主機使用ebcdic編碼,而大部分pc機使用的是ascii碼。在這種情況下,便需要表示層來完成這種轉換。應用層 包含了通常要使用的協議 http協議 超...

應用層協議

應用層協議定義了執行在不同端系統上的應用程式程序如何相互傳遞訊息。特別是定義了 交換的訊息型別,如請求訊息和響應訊息。各種訊息型別的語法,如訊息中的各個字段及其詳細描述。欄位的語義,即包含在字段中的資訊的含義。程序何時 如何傳送訊息及對訊息進行響應的規則。有些應用層協議是由rfc文件定義的,因此它們...