std::thread@TOC
C++11 std:thread
最近项目上在经常使用C++标准库中的东西,整理了一下,跟大家分享一下。
示例1:类似定时器
#include<thread>
#include<chrono>
using namespace std;
void fun1(int n)
{
while(true)
{
cout << "Thread " << n << " executing\n";
n += 10;
thread::sleep_for(chrono::milliseconds(1000));//1000定时
}
}
int main()
{
thread t1(fun1, n + 1);//按照值传递
return 0;
}
#include <iostream> // std::cout
#include <thread> // std::thread
#include <mutex> // std::mutex, std::unique_lock
#include <condition_variable> // std::condition_variable
std::mutex mtx; // 全局互斥锁.
std::condition_variable cv; // 全局条件变量.
void fun1(int n)
{
std::unique_lock<mutex> f_lock(mtx)
while(true)
{
cv.wait(f_lock);
//TODO
cout << "Thread " << n << " executing\n";
n += 10;
}
}
void go()
{
cv.notify_all();//唤醒所有线程.
//cv.notify_one();唤醒一个线程
}
int main()
{
thread t1(fun1, n + 1);//按照值传递
go();
return 0;
}