当前位置: 首页 > news >正文

东莞石龙疫情最新情况福鼎网站优化公司

东莞石龙疫情最新情况,福鼎网站优化公司,国外建设网站情况,网站设计网站建设毕业文稿目录 创建多线程 1.普通函数充当线程处理函数创造线程 2.Lambda表达式充当线程处理函数 3.带参函数创建线程 3.1普通参数 3.2传入引用 3.3智能指针充当函数参数 4.通过类中的成员函数创建 4.1仿函数方式创建:类名的方式调用 4.2普通类中的成员函数 创建多…

目录

创建多线程

1.普通函数充当线程处理函数创造线程

2.Lambda表达式充当线程处理函数

3.带参函数创建线程

3.1普通参数

3.2传入引用

3.3智能指针充当函数参数

4.通过类中的成员函数创建

4.1仿函数方式创建:类名的方式调用

4.2普通类中的成员函数


创建多线程

1.普通函数充当线程处理函数创造线程

#include <thread>
#include <iostream>
using namespace std;
void ThreadPrint()
{cout << "线程启动" << endl;
}
void ThreadOpen()
{thread t1(ThreadPrint);//无输入无返回值的函数t1.join();
}
int main()
{ThreadOpen();return 0;
}

2.Lambda表达式充当线程处理函数

#include <thread>
#include <iostream>
using namespace std;void ThreadLambda()
{thread t1([]() {cout << "Lambda表达式充当线程处理函数" << endl; });t1.join();
}
int main()
{ThreadLambda();return 0;
}

3.带参函数创建线程

3.1普通参数

#include <thread>
#include <iostream>
using namespace std;void WhatYourYear(int num)//const int num 也是可以的
{cout << "your year:" << num << endl;
}
void ThreadHaveInt(int Pnum)//创建带参数的普通线程,你需要有这个数
{int num = 1;thread t1(WhatYourYear, num);t1.join();thread t2(WhatYourYear, Pnum);t2.join();
}
int main()
{ThreadHaveInt(9);return 0;
}

3.2传入引用

#include <thread>
#include <iostream>
using namespace std;void IntoRef(int& num)//如果加上const,把 num=1001删除
{num = 1001;cout << "子线程" << num << endl;
}
void ThreadHaveRef()
{int num = 0;thread t1(IntoRef, ref(num));//这里thread后面传入的为&&,所以对num要包装引用作为传递的值t1.join();cout << "主线程" << num << endl;
}
int main()
{ThreadHaveRef();return 0;
}

3.3智能指针充当函数参数

因为智能指针是不能被复制的,而是具有所有权的资源管理对象,因此不能直接传递给子线程的函数。

所以通过使用move函数,来将智能指针ptr从主线程移动到新的子线程中,将ptr的所有权转移到子线程中,以便在子线程中正确访问智能指针的资源,可以实现将智能指针的所有权从一个上下文转移到另一个上下文。

#include <thread>
#include <iostream>
using namespace std;void printPtr(unique_ptr<int> ptr)
{cout << "智能指针" << ptr.get()<< endl;
}
void ThreadSmartPtr()
{unique_ptr<int> ptr(new int(100));cout << "主线程打印:" << ptr.get() << endl;thread t1(printPtr, move(ptr));//move语句作为处理t1.join();cout << "转移后的主线程打印:" << ptr.get() << endl;//是空的
}
int main()
{ThreadSmartPtr();return 0;
}

4.通过类中的成员函数创建

4.1仿函数方式创建:类名的方式调用

#include <thread>
#include <iostream>
using namespace std;class TestFunction
{
public:void operator()(){cout << "重载()" << endl;}
};
void ThreadOperator()
{TestFunction TF1;//直接通过类创建对象,将对象传入线程thread t1(TF1);//这样就会调用一下void operator()()t1.join();//匿名对象thread t2((TestFunction()));//多加一个()帮助进行解析t2.join();
}
int main()
{ThreadOperator();return 0;
}

4.2普通类中的成员函数

#include <thread>
#include <iostream>
using namespace std;class LH
{
public:void print(int& num)//自己选择用什么模式的函数{cout << "people:" << num << endl;}
};
void ThreadClassOne()
{LH a;//指定对象int num = 1;thread t1(&LH::print, a, ref(num));//哪个类的函数,哪个对象,传入的值t1.join();
}
int main()
{ThreadClassOne();return 0;
}

http://www.hkea.cn/news/668396/

相关文章:

  • 网站排名不稳定怎么办seo+网站排名
  • 做网站要淘宝热搜关键词排行榜
  • 做网站 创业 流程网络建站流程
  • 怎么做购物网站系统文本广州网络营销推广
  • 网站后台管理系统cms推广seo网站
  • 企业网站备案注销百度推广登陆平台
  • 重庆如何软件网站推广网站优化seo
  • 最专业的佛山网站建设价格3小时百度收录新站方法
  • wordpress门户建站html网页完整代码作业
  • 子域名 做单独的网站广州seo外包公司
  • 凡科建设网站的步骤永久免费无代码开发平台网站
  • 建设一个百度百科类网站网站排名优化的技巧
  • 自己做网站可以吗淄博做网站的公司
  • 个人做健康网站好吗宁波网站制作与推广价格
  • 长沙有哪些做网站的连云港seo优化公司
  • 青羊区定制网站建设报价搜索引擎营销方案
  • 淘宝优惠券查询网站怎么做域名备案官网
  • wordpress自定义url优化教程网下载
  • 模板网站和定制网站百度搜索引擎的网址
  • 企业建设网站公司哪家好app拉新推广接单平台
  • 老虎淘客系统可以做网站吗江西省水文监测中心
  • 高港区企业网站建设快速建站教程
  • 怎样写企业网站建设方案北京网站seo招聘
  • 做蛋糕视频的网站软文广告范文
  • h5自适应网站模板下载网站换友链平台
  • 政府网站建设及管理规范各大搜索引擎入口
  • poedit pro wordpress免费网站推广优化
  • 市场营销产品推广策划方案seo合作代理
  • 东莞专业网站建设推广搜索引擎网络排名
  • 服务器做网站用什么环境好销售营销方案100例