#include<thread>
#include<iostream>
#include<mutex>
using namespace std;
//std::once_flag flag;
void func(int a, int b)
{
cout << a << b << endl;
}
void do_once(void* flag)//std::once_flag 不能引用
{
std::call_once(*((std::once_flag*)flag), [](){std::cout << "called once" << std::endl;});
}
int main()
{
std::once_flag flag1;
std::thread t1(std::bind(do_once, &flag1));
std::thread t2(do_once, &flag1);
t1.join();
t2.join();
// std::thread t(std::bind(func, 1, 2));
// t.join();
return 0;
}
call_once/once_flag
最新推荐文章于 2024-04-17 00:32:20 发布