2017-12-17 12 views
-2

私はWindows 10でcodeblocksとgcc 7.2を使用していますが、私はC++ 11またはC++ 14を使用できます。可能であれば、外部ライブラリなし(ブースト)。 私は何億ものフィールドを処理するプログラムを持っています。それはコンセプトプルーフですので、気をつけてエラー処理をする必要はありません。私はシンプルさとパフォーマンスが必要です。フィールドはビットのバッファにマップされ、500MB以上に達することができます。バッファの管理は分離されたスレッドに入れたいと思います。コンストラクタまたは初期化はベクトルの作成を行い、デストラクタまたはエンド関数はバッファに統計情報を書き込み、数百万回呼び出される関数は計算を行い、ビットを設定します。私はメインプログラムからその関数を非同期と呼ぶ必要があり、データを返す必要はありません。ビットを設定するだけで、エラーがある場合は、そうでなければ処理が複雑になる場合に処理が終了したときより読むことができます。メインプログラムは、同じ機能にアクセスする2つまたは4つのスレッドで複製できます。私は、その関数の非同期呼び出しのためのガイダンスを感謝します。ありがとうございました。非同期スレッド

+0

よくC++ 11以降は[std :: thread](http://en.cppreference.com/w/cpp/thread/thread)をサポートしています –

+0

私はそれを使用しましたが正常に動作します。私はメインプログラムをブロックしたくないので、未来がなくても欲しいスレッドを使って非同期を呼び出すことができますが、メインに戻る必要はありません。 –

+0

この回答を参照できます:https://stackoverflow.com/questions/10890242/get-the-status-of-a-stdfuture – Frank

答えて

-1

私の英語のために申し訳ありません。問題は、メインプログラムをブロックせずにスレッドと何百万回も通信することであり、スレッドが行う作業がない場合にはCPUを消費しないことです。そして、プログラムコードが非常に短いが、それは何度も実行されているため、優れたパフォーマンスが得られます。

関連する問題