3

私は、このための多くのツールを提供するJavaでの並行プログラミングに精通しています。ただし、C++並行プログラミングは使い始めるのがそれほど簡単ではありません。

C ++で同時にプログラミングを開始するための最良の方法は何ですか?並行プログラミングプリミティブをラップし、より高レベルの構造を提供する優れたライブラリはありますか?

優れたMapReduce機能を提供するQtConcurrentを試しましたが、Qtを使用した並行計算に大きく偏っているため、Qtを使用したくない場合は適切な選択ではありません。

他に同様のライブラリはありますか?人々はここで何を使用しますか?

事前にご協力いただきありがとうございます、sneg

4

5 に答える 5

11

いくつかの選択肢があります:

いくつかの同時実行構造を提供するACE

インテルスレッディング ビルディング ブロック

ブースト::スレッド

OpenMP

Qt スレッディング ライブラリ

于 2009-02-20T13:22:40.393 に答える
4

Morendil の提案 (CSP - シーケンシャル プロセスの通信) は、一見すると非常に興味深いものです。これは、スレッド化の非常に異なるビューであり、理解すればうまく機能するものです。私が最初に遭遇したのは、かなり難解なトランスピューター向けの Occam 言語でしたが、そのアイデアは私の心に突き刺さりました。

もっと伝統的な考え方: boost::threadsは、スレッドベースの並行プログラムを構築するのに非常にうまく機能します。かなり低レベルですが。

OpenMPはスレッドよりも高いレベルにあり、十分にサポートされています。

于 2009-02-20T13:08:25.123 に答える
3

C++を実装したCSPを見ることができます。ただし、Javaのスレッドプリミティブとは大きく異なります。

于 2009-02-20T13:03:27.693 に答える
2

この質問と回答は、おそらく少し役立つでしょう。

于 2009-02-20T13:10:55.303 に答える