2018年06月14日
《その401》スレッド(2)
スレッド(2)
下記のプログラムは、前回《400》のプログラムから、スレッド th1 の時間間隔のコード
for (int j = 0; j < 10000; j++) {
for (int k = 0; k < 10000; k++)
;
を取り除いたものです。
th1 の時間間隔のコードを省くと、ほぼ同じ動作をする2つのスレッドからの出力は、例えば、次のようになります。
プログラムの出力結果が一定していないのは、並列に動作している2つのスレッドが、相手のスレッドの状況とは無関係に、出力準備ができ次第出力するからです。



以下はプログラムです。
#include <iostream>
#include <thread>
#include <string>
using namespace std;
int main() {
thread th1 = thread([] {
for (int i = 0; i < 6; i++) {
cout << "th1 ・・・" + to_string(i + 1) + "回目\n";
}
});
thread th2 = thread([] {
for (int i = 0; i < 6; i++) {
cout << "th2 ・・・" + to_string(i + 1) + "回目\n";
}
});
th1.join();
th2.join();
}
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/7777432
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック