私は並列に実行したいですか?(は同時に実行しません。)私は並列性が新しく、いくつか質問があります。私がこれをしたい理由は、のパフォーマンスが本当に重要だからです。私にとってはです。私は4コアのWindowsマシンで作業していますが、Visual Studio Community 2015でC++を使用しています。異なるコア(並列性)でそれぞれ4つのスレッドを実行するにはどうすればいいですか?
1.スレッドを自分のスケジュールに合わせて、それぞれ別のコアで実行するようにしてください。私はそれを行うOSスケジューラを残していますか?私はそれが別のコアで各スレッドを実行するように強制すると私の意見では、私は速いと思う。どうやってやるの?
は、これは私がこれまでにしようとしているものです:
#include <thread>
void t1(){//do something}
void t2(){//do something}
void t3(){//do something}
void t4(){//do something}
int main(){
std::thread thread1(t1);
std::thread thread2(t2);
std::thread thread3(t3);
std::thread thread4(t4);
t1.join();
t2.join();
t3.join();
t4.join();
}
私はそれが終了するまでそのスレッド()ブロックに参加する知っています。しかし、スレッドを並行して実行するかどうかはわかりません。私のコードはスレッドを並行して、または並列に実行していますか?例を教えてもらったり、チュートリアルをお勧めしますか?可能であれば、外部ライブラリを使用せずに。
おかげ
EDIT:
同時実行 2つのタスクが同時に実行されているときに、本質的です。これは、一方が短期間「一時停止」され、他方が作業中であることを意味する可能性があります。
並列性は、少なくとも2つのプロセス/タスクが特定の瞬間に積極的に実行されている必要があります。
"同時にまたは並行して" < - これらの単語は同じことを意味します。何を聞いていますか? – Blorgbeard
実行するコアスレッドを選択することはできません。これはオペレーティングシステムによって行われます。 –
@Blorgbeard並行性と並列性の編集と検索を参照してください。 – mata