簡體   English   中英

多線程寫入文件C ++

[英]Multi-threads writing into a file C++

我有一個帶有整數數據的大緩沖區(一個大整數數組),我想將它寫入一個文件。

但是我使用的是openMP,我的整個應用程序現在都是多線程的。 所以我想知道,在緩沖區已滿后,有沒有辦法讓我使用openMP並讓多個線程寫入同一個文件,對緩沖區進行幾次只讀訪問?

如果使用openMP是不可能的,是否有可能以其他方式進行? 我該怎么辦?

你知道有沒有這樣的圖書館?

寫入文件的多個線程將使該過程比現有的更慢,因為這會強制執行許多seek操作(考慮到默認磁性HDD,這是最慢的操作)。

考慮只用一個線程將數據寫入磁盤,但是使用多個線程直接訪問內存數組進行讀取。 一旦不再分配該陣列,就應該在磁盤上執行訪問,由於尋道時間導致再次大幅減速。 要減少減速,必須實現一些緩沖方案或僅使用一個線程。

還有其他事情要考慮,取決於你的讀數如何執行和你的算法實現,但我相信這些是一般的一些。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM