線程間通信

1.線程間的通信主要涉及4個問題:
1)線程間如何傳遞信息;
2)線程之間如何同步,以使一個線程的活動不會破壞另一個線程的活動,以保證計算結果的正確性;
3)當線程之間存在依賴關係,如何調度線程的處理順序;
4)如何避免死鎖;

四種方法主要爲:
1.全局變量法;
2.參數傳遞法;
3.消息傳遞法;
4.線程同步法;

全局變量法:
線程函數既可以是全局函數也可以是類中靜態函數;

參數傳遞法:
一般是主線程創建新線程讓其完成一些工作,這樣主線程和其他線程之間的通信很有必要;主線程和其他線程之間可以通過參數傳遞的方式進行。主線程在創建其他線程時,可以通過傳給線程函數的參數和其通信。傳遞的參數是一個32bit的指針。該指針不但可以指向簡單的數據,也可指向結構複雜的數據結構。

消息傳遞法:通過PostMessage()在主線程和工作線程之間傳遞消息,通過PostThreadMessage()函數在用戶界面線程和其他線程之間傳遞消息。

4.通過同步變量進行線程間通信
具體實例可參考其他blog

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