- 论坛徽章:
- 14
|
回复 12# folklore
不是 OpenMP、TBB、CUDA、OpenCL、MPI 等东西,C++11标准真的加入了线程支持。
我写个事例代码给你睇下,在MinGW(gcc4.8.1)上能编译运行- #include <iostream>
- #include <thread>
- #include <mutex>
- using namespace std;
- void foo( std::mutex& m )
- {
- //std::this_thread::sleep_for (chrono::seconds(1));
- for( size_t i=0; i!=10; ++i )
- {
- std::lock_guard<std::mutex> lock(m);
- cout << "ThreadID(" << std::this_thread::get_id() << "): " << i << endl;
- }
- }
- int main()
- {
- std::mutex m;
- thread t1( &foo, std::ref(m) );
- thread t2( &foo, std::ref(m) );
- t1.join();
- t2.join();
- return 0;
- }
复制代码 一种可能的输出为- ThreadID(2): 0
- ThreadID(3): 0
- ThreadID(2): 1
- ThreadID(3): 1
- ThreadID(2): 2
- ThreadID(3): 2
- ThreadID(2): 3
- ThreadID(3): 3
- ThreadID(2): 4
- ThreadID(3): 4
- ThreadID(2): 5
- ThreadID(3): 5
- ThreadID(2): 6
- ThreadID(3): 6
- ThreadID(2): 7
- ThreadID(3): 7
- ThreadID(2): 8
- ThreadID(3): 8
- ThreadID(2): 9
- ThreadID(3): 9
复制代码 |
|