C++のstd::thread基本

スレッドでHello World!

スレッドに値を渡す(int)

スレッドに値を渡す(class)

実行結果

スレッドで実行しているので改行が合わない。がコンストラクタは以下のように呼ばれている。ユニバーサル参照のコンストラクタしか呼ばれていない。

Ideone

std::threadは基本的な機能しか提供していないようで高度なことはできないようだ。例えばスレッドを開始しなかったり、スタック領域をしていしたり、スレッドをKILLしたり、ただnativehandleで処理系依存のスレッドハンドルが取得できるのでKILLくらいならできる。スレッド関数の戻り値には意味がない。スレッドから値を取得したい場合は引数経由で行う。

KILLしてみたコード

上のコードはうまく動かなくなる。coutがおかしくなってしまうのだと思われる。

というわけであんまり使えなそうである。スレッド関数はあくまでも計算とかを実行し、入出力に使うのは基本的に良くない。

ソースコード

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)