本帖最后由 博弟弟丶 于 2021-4-26 20:36 编辑
[C++] 纯文本查看 复制代码 #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()中的一个,且只允许调用一次。
//这个jion detach 分情况调用
std::cout << "By吾爱破解论坛一" << std::this_thread::get_id()<<std::endl;
return 0;
};
|