简介
本文主要介绍标准C++中 thread的创建线程的几种方式。
使用时需要加头文件:
#include <thread>
位于std命名空间中,是跨平台的线程操作
使用说明
1、通过函数指针创建
一般来说,像CreateThread、_beginthread等创建线程时,都会先写一个含有一个参数(LPVOID lpParam)的全局函数,用于通过函数指针创建线程。
在标准C++提供的 thread方法中,函数指针的方式也需要一个全局函数,不过参数个数已经不再受限制
比如
void func(int param1,int param2,int param3);//全局函数
thread t(func,param1,param2,param3);//创建线程
此种方式通过参数的形式传递线程数据
2、通过函数对象创建
通过构建一个函数对象传给thread,以创建线程,因为函数对象的创建方式多样,所以对应创建线程的方式也有多种,具体参照示例代码。
通过函数对象,可以向函数对象类添加成员变量,并初始化和使用这些变量,以传递线程数据
3、通过lamda表达式创建
构建一个lambda表达式创建线程,通过lambda参数传递数据。
4、通过成员函数创建
通过成员函数创建线程,可以在不同的线程中执行对象的