C++11の標準ライブラリ<thread>を使った並列化 大量のデータを分割し、複数のスレッドに分担させて処理時間を稼ぐことを考えます。スレッドに関わるAPIは、WindowsならCreateThreadやWaitForNltipleObjectなど、Linuxならpthread_xxxxと、OSによって異なるのですが、C++11では標準ライブラリ<thread>がOSごとの差異を吸収してくれているのが嬉しいところ。大量のデータを詰め込んだvectorを2つのスレッドでソートしてみます。 #include <iostream> // cout, endl #include <thread> // thread #include <algorithm> // inplace_merge, etc. #include <chrono> // clock, time_point, duratio
![並列処理のためのC++ライブラリ拡張 ~C++17: 並列STLの概要](https://cdn-ak-scissors.b.st-hatena.com/image/square/fe9488cbc42798897ec4f8f254f2dbcabfa3eb86/height=288;version=1;width=512/https%3A%2F%2Ffanyv88.com%3A443%2Fhttps%2Fcodezine.jp%2Fstatic%2Fimages%2Farticle%2F8058%2F8058_arena.png)