C++11でstd::threadがサポートされた.pthreadがJavaでいうところのネイティブスレッドであれば,std::threadはさしずめExecutorServicesのような使いやすさである.
#include <mutex>
#include <chrono>
#include <random>
using namespace std;
mutex mutexObj;
random_device rd;
mt19937 mt(rd());
void dump(int val) {
mutexObj.lock();
this_thread::sleep_for(chrono::seconds(mt()%3));
cout << "[" << this_thread::get_id() << "]:" << val*50 << endl;
mutexObj.unlock();
}
int main() {
vector<thread> threads;
for (int i = 0; i < 5; i++)
threads.push_back(thread(dump, i));
for (auto& t : threads)
t.join();
}
0 件のコメント:
コメントを投稿