情報のブロックを含むバイナリファイルがあります(以降、これらをパケットと呼びます)。各パケットは、固定長のヘッダーと可変長の本文で構成されます。パケットヘッダー自体から本文の長さを決定する必要があります。私の仕事は、ファイルからこれらのパケットを読み取り、それらに対して何らかの操作を実行することです。現在、私はこのタスクを次のように実行しています。
- ファイルをランダムアクセスファイルとして開き、特定の開始位置(ユーザー指定の開始位置)に移動します。この位置から最初のパケットを読み取ります。特定の操作を実行する
- その後、ループで
- 次のパケットを読む
- 操作の実行これは、ファイルの終わりマーカーに到達するまで続きます。
ご想像のとおり、ファイルサイズが大きい場合、各パケットを順番に読み取って処理するのは時間のかかる作業です。どういうわけか、この操作、つまりパケット生成操作を並列化してブロッキングキューに入れ、キューから各パケットを並列に取得して操作を実行したいと思います。
誰かがこれらのパケットを並行して生成する方法を提案できますか?