c++并发与多线程学习笔记——joinable
joinable: 用来测试后面能否用jion加入其他线程
举个栗子:下面也说明了 join和detach后都不能在加入join了
#include <iostream>
#include <thread>
using namespace std;
void myprint()
{
cout << "我的线程开始" << endl;
cout << "我的线程结束1" << endl;
cout << "我的线程结束2" << endl;
cout << "我的线程结束3" << endl;
cout << "我的线程结束4" << endl;
cout << "我的线程结束5" << endl;
cout << "我的线程结束6" << endl;
}
using namespace std;
int main()
{
thread myjob(myprint);
if (myjob.joinable())
cout << "可以输入join" << endl;
myjob.join();
// myjob.detach();
if (myjob.joinable())
cout << "可以输入join" << endl;
cout << "你好" << endl;
return 0;
}
''''''''''''''''''''''
可以输入join
我的线程开始
我的线程结束1
我的线程结束2
我的线程结束3
我的线程结束4
我的线程结束5
我的线程结束6
你好
#include <iostream>
#include <thread>
using namespace std;
void myprint()
{
cout << "我的线程开始" << endl;
cout << "我的线程结束1" << endl;
cout << "我的线程结束2" << endl;
cout << "我的线程结束3" << endl;
cout << "我的线程结束4" << endl;
cout << "我的线程结束5" << endl;
cout << "我的线程结束6" << endl;
}
using namespace std;
int main()
{
thread myjob(myprint);
if (myjob.joinable())
cout << "可以输入join" << endl;
// myjob.join();
myjob.detach();
if (myjob.joinable())
cout << "可以输入join" << endl;
cout << "你好" << endl;
return 0;
}
'''''''''''''''''''''''''''''
可以输入join
你好
我的线程开始
我的线程开始
我的线程结束1
我的线程结束2
我的线程结束3
我的线程结束4
我的线程结束5
我的线程结束5
我的线程结束6