私は本質的にforループをスレッドする最良の方法を理解しようとしています。たとえば、次のループがある場合:スレッドでループをC++で
for(int i = 0; i < n; i++)
doSomethingThreadSafe(i);
これはWindowsプラットフォーム上にあります。私は各プロセッサ用のスレッドを作成し、次に各プロセッサ用にできるだけ均等にnを分割しようと試みました。次に、必要なデータを各スレッドに渡してから、WaitForMultipleThreadsを使用します。これを行うより良い方法はありますか?私はブーストのような他のライブラリを使いたくない。
理想的には、私はいくつかの一般的な(テンプレート化された)方法を考えていきたいと思います。すなわち
threaded_for(0, n, doSomethingThreadSafe);
最高/最も効率的な方法は、ライブラリを追加するために必要とされるであろう、そしてどのように正確には、それがこの例で使用されるだろうどのくらいの作業ライブラリを使用するようになる場合。それでも、私は、他に何かを追加する必要がある解決策を好む。
外部のライブラリを使用したくないので、[OpenMP](http://www.openmp.org/)を使用することはできません。この場合は、実際に使用する必要があります。 – chrisaycock
スレッドで実際に何をしていますか?同期が必要な共有リソースがありますか? – ThomasMcLeod
@ThomasMcLeod同期が不要になるようにすべて設定されています。彼らはすべて独立して行動します。 –