学习C++的第十九天 线程1
本帖最后由 博弟弟丶 于 2021-4-26 20:36 编辑#include <iostream>
#include <thread>//线程头文件
#include <windows.h>
void xc1() {
std::cout << "By吾爱破解论坛" <<std::this_thread::get_id() <<std::endl;//获取子线程ID
};
int main() {
std::thread t1(xc1);//创建一个新的子线程 调用xc1这个函数
t1.join();//使用join函数后,原始线程会等待新线程执行结束之后,再去销毁线程对象。
//在一个线程中,开了另一个线程去干另一件事。
std::cout << "By吾爱破解论坛一" << std::this_thread::get_id()<<std::endl;//获取主线程ID
return 0;
};
#include <iostream>
#include <thread>//线程头文件
#include <windows.h>
void xc1() {
for (int i=0;i<100;i++)
{
std::cout << "I=" << i<<std::endl;
}
};
int main() {
std::thread t1(xc1);//创建一个新的子线程 调用xc1这个函数
Sleep(100);//加个延时就能看到 for循环里面的内容如果不加 那么主线程就会直接结束那么肯定也不会执行输出I的值
t1.detach();
//使用detach函数后,那么新线程就会与原线程分离。
//由于使用的是detch函数,在detch函数执行完成,主线程main函数结束并没有打印I的值
//加个延时就能看到 for循环里面的内容如果不加 那么主线程就会直接结束那么肯定也不会执行输出I的值
//一个子线程只能调用join()和detach()中的一个,且只允许调用一次。
//这个jiondetach分情况调用
std::cout << "By吾爱破解论坛一" << std::this_thread::get_id()<<std::endl;
return 0;
};
这是c++哪个版本的?创建线程不是createthread吗?第一次见std空间里的thread,之前学c ++时没见过这么创建的啊!c++哪个版本有这个功能?孤陋寡闻了。 厉害。加油 朱朱你堕落了 发表于 2021-4-26 22:37
这是c++哪个版本的?创建线程不是createthread吗?第一次见std空间里的thread,之前学c ++时没见过这么创建 ...
createthread是API版本 这个是类的版本
页:
[1]