藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月6日 10:18


關於全局對像和多線程?

多線程程序只是利用全局對像對全局對像中的成員變量的讀取操作,會不會產生問題?

關於全局對像和多線程?

如果只是讀取的話,拿應該是沒有問題的。

關於全局對像和多線程?

嗯,不寫就行

否則需要同步鎖

關於全局對像和多線程?

多線程必定會使用到寫的部分,不然的話用多線程也沒有什麼太大意義,建議你學會使用同步鎖進行處理

關於全局對像和多線程?

加上讀寫鎖,什麼都OK,不過是在不是很要求速度的前提先。

關於全局對像和多線程?

是這樣的,服務器(多線程的)發送命令給客戶端,客戶端需要回應,因此,需要用到多線程和同步,所有的發送信息存儲到一個全局數據段中,在等到客戶端回應後,將相關信息刪除,在一段時間內,沒有回應則服務器重新發送。

有什麼辦法可以不用同步鎖嗎?

關於全局對像和多線程?

如果你的設計中不會有兩個線程同時改變某個資源
那麼就不用

如果同時改變,
那麼要使用

關於全局對像和多線程?

下面是一個靜態的全局對像:
如果在多線程中利用Modify函數操作改對像中的m_StatusArr成員變量,是否在Modify函數中進行鎖定,還是在多線程中對該靜態的全局變量進行鎖定?

class single
{
public:
        ~single();
        int Init();
        int Release();
        int Modify(Status status);

        static         single* Instance();
protected:
        CDevice_Manager();

private:
        CCriticalSection m_listManipulationSection; //鎖
       
        static single* _instance;
        StatusArr        m_StatusArr;
};

關於全局對像和多線程?

如果會同時調用的話就鎖定
兩種鎖定都可以
但是
在notify中鎖定比較好一點
因為以後代碼的管理比較方便

關於全局對像和多線程?

最好是在類成員函數中進行鎖定修改,然後接鎖,這樣操作的粒度小,性能好



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com