1 對於cpu開銷大的場景,能利用多核,就盡量利用多核(常常自以為某需求的運算量不大,且cpu足夠快,就偷懶寫個單執行緒,結果效率很低)
2 使用多執行緒的時候,預設是加鎖的。在加鎖保證業務正常的條件下,再考慮優化互斥鎖帶來的效能損耗
互斥鎖< 讀寫鎖< 自旋鎖< 無鎖(原子操作)
3 減少執行緒之間的相關性
執行緒間共享變數< 執行緒內變數< 函式式程式設計(沒有變數)
4 儘量減少鎖的粒度
a.減少加鎖的**段(減少加鎖的時間)
b.分成多個鎖,減少競爭(使用細粒度的鎖,如myisam和innodb)
多執行緒的同步機制
1 event 用事件 event 來同步執行緒是最具彈性的了。乙個事件有兩種狀態 激發狀態和未激發狀態。也稱有訊號狀態和無訊號狀態。事件又分兩種型別 手動重置事件和自動重置事件。手動重置事件被設定為激發狀態後,會喚醒所有等待的執行緒,而且一直保持為激發狀態,直到程式重新把它設定為未激發狀態。自動重...
執行緒同步機制
本週主要學習 執行緒同步機制 互斥量 讀寫鎖和條件變數 和簡單程式的實現,對執行緒同步有了進一步認識 內容如下 執行緒的基本概念,相關函式 互斥量 說明 處於標圓形框之上的線段表示相關的執行緒沒有擁有互斥量 處於圓形框中心線之上的線段表示相關的執行緒等待互斥量 處於圓形框中心線之下的線段表示相關的執...
執行緒同步機制
執行緒同步主要用於協調對臨界資源的訪問,臨界資源可以是硬體裝置 比如印表機 磁碟 檔案 記憶體 變數 陣列 佇列等 執行緒同步有4種機制 他們的主要區別在於 各同步機制詳細的功能說明如下 臨界區臨界區是一段獨佔對某些共享資源訪問的 在任意時刻只允許乙個執行緒對共享資源進行訪問。如果有多個執行緒試圖同...