多執行緒開發經驗總結 未完

2021-06-02 22:01:37 字數 546 閱讀 7155

1.    盡量不要使用執行緒外部傳入的記憶體指標

那麼將特別容易造成程式崩潰。 

這一點說起來十分簡單,可是到了程式裡面,大量的程式**、邏輯結構交織在一起,再想看清楚執行緒間使用記憶體的關係,就比較困難了。

為了理清執行緒使用的記憶體是否為外部傳入可以從兩個方面入手:

a.  執行緒的傳入引數, 因為執行緒傳入引數一般只是乙個指標。那麼就要分析清楚這個傳入指標所指的記憶體是誰申請的,在什麼時候釋放。

2.   如果必須使用外部記憶體與其它執行緒進行通訊,那麼要確保外部記憶體的生命週期 大於 執行緒執行期

可如果沒有採用這樣的多執行緒模型,比如直接在全域性開闢了一塊記憶體,讓多執行緒共享,這就比較麻煩了,經常容易出現因記憶體訪問錯誤的問題。

為此,建議對於多執行緒需要共享的記憶體,進行統一管理。建立乙個物件管理器,來管理需要共享的記憶體。然後控制該物件管理器的生命期一定要 大於 共享該記憶體的多個執行緒。

寫在後面:

需要閱讀一些伺服器程式,特別是它是如何處理在多執行緒之間共享記憶體的,特別是與業務邏輯進行結合的時候。

開發經驗總結

2018 8 29 1.盡量不要在迴圈方法裡面查詢資料庫 應該使用join或者union將資料統一查詢出來後,迴圈處理資料 2.新增或者更新資料時,addtime 和updatetime 的值不要寫在dal層,統計資料時不好控制 3.如果你程式裡面使用的sql語句的話。insert 語句 應該寫明新...

個人多執行緒程式設計經驗總結

1.各執行緒的資料要分離開來,避免使用全域性變數。2.如果各執行緒一定要使用全域性變數,哪麼該全域性變數一定要讀寫保護 臨界區,互斥等技術 4.確定你知道你的執行緒狀態,不要徑自結束程式而不等待它們的結束 5.讓主線程處理使用者介面 ui 6.千萬不要在乙個臨界區中呼叫sleep 或wait.api...

Flsh SOCKET開發經驗總結

剛用as3 flash play 10開發了乙個flash socket應用,過程中遇到的最大問題是安全策略的部署。flash socket通訊中的安全策略問題詳解 套接字策略 adobe actionscript 3.0 安全沙箱 在呼叫flash socket的 socket.connect 方...