我有一個情況,許多線程都同時生成最終寫入一個長串流文件流的數據。我需要以某種方式將這些寫入序列化,以便將流寫入正確的順序。線程I/O重排序緩衝區的標準術語?
即,我的2048 J任務 ..j Ñ,其每一個產生的數據塊ö我輸入隊列。作業在8個線程上並行運行,但輸出塊必須以與相應輸入塊相同的順序出現在輸出塊中,輸出文件必須按以下順序排列:o o o o ...
的解決方案,這是非常不言自明:我需要在Tomasulo's algorithm某種緩衝區積累和正確的順序寫入輸出塊,類似於CPU重新排序緩衝器,或到路TCP在將它們傳遞到應用層之前重新組裝無序數據包。
在我開始編寫代碼之前,我想快速搜索文獻,看看是否有任何文章以特別聰明或有效的方式解決了這個問題,因爲我有嚴重的實時和內存限制。我似乎無法找到任何描述這一點的論文;在[線程,併發,重新排序緩衝區,重新組裝,io,序列化]的每個排列上的學者搜索沒有取得任何有用的結果。我覺得我不應該在尋找正確的術語。
是否有這種模式的常用學術名稱或關鍵字,我可以搜索?
真正串行 - 流密碼。 – Crashworks 2010-05-28 22:14:58
只有在處理完成之前輸出記錄的長度已知,您的解決方案才能正常工作。 – 2010-05-30 17:34:22