首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ 同步讀寫文字檔(生產者/消費者模式)

     編輯:關於C++

場景

寫入程式每 2 秒寫入一個數字;讀取程式每 5 秒讀取最後一個數字。需同步存取同一檔案。

寫入程式

#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;

int main() {
    ofstream ofs("D:/w.txt");
    int num = 0;
    while (true) {
        ofs << ++num << endl;
        cout << num << endl;
        Sleep(2000);
    }
    ofs.close();
    return 0;
}

讀取程式(略)

讀取端需開啟檔案、定位至末尾、向前尋找最後一行、解析數字。建議使用檔案鎖(LockFileEx)或命名管道/共享記憶體替代檔案同步,效能與可靠度更高。

注意事項

  • 頻繁開關檔案效能低,建議保持檔案開啟並 flush()。
  • 多程序同步需作業系統層級同步物件(Mutex、Event、Semaphore)。
  • 生產環境推薦使用 Boost.Interprocess、ZeroMQ、gRPC 等成熟 IPC 機制。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved