C++11 希望用 thread 库来实现多线程,要启动线程,但thread类为什么没有start方法?
我看网上很多文章都是用join方法来开启线程。join显然是同步的,没达到多线程异步的效果。
PHP中文网2017-04-17 14:48:04
std::thread::join()
この関数は、スレッドを開始するためには使用されません。逆に、現在のスレッドをブロックし、対応するスレッドが終了するのを待つために使用されます。 std::thread
オブジェクトが構築されると、新しいスレッドの実行が開始されます。
PHPz2017-04-17 14:48:04
join()
自体はスレッドを開始しません。
非同期アクセスでは、async
を std::future
と組み合わせて使用することもできます。ただし、std::launch::async
が必須でない限り、これは新しいスレッドが起動されることを必ずしも保証しません。 get または wait 中の実行のみを保証できます。