多進程寫文件的三種方式

      多進程寫log:

      (1)通過文件加鎖的方式,在一個進程訪問的時候將文件加鎖,處理完了再關閉,不過這種方式會造成文件大頻繁操作,導致性能比較低(磁盤慢)。

                另外對於這種方式,有個小的優化就是,可以每個進程有一個內存區域,等到內存區域滿了之後再存儲,不過可能會造成中間如果出現問題,會導致信息不能夠記錄(開緩存);

       (2)通過信號燈或者令牌的方式,當一個進程活的信號燈的時候或者令牌的時候可以使用,或者加互斥,每個進程使用統一的一個互斥量,如果存在則證明有文件在讀寫,其他進程需要等待。

        (3)通過消息的方式,有一個主線程維護一個隊列,其他進程在處理log時,與這個主進程通信,將log信息發給主進程,主進程從隊列中取出內容進行寫入操作,當然,這裏,主進程最好也有一個內存區域,當信息滿時在寫入文件。當然如果覺得消息隊列不好處理,也可以使用windows自帶的消息對列,進行處理。

發佈了87 篇原創文章 · 獲贊 28 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章