C++11 增加了线程以及线程相关的类, 而之前并没有对并发编程提供语言级别的支持,使用 std::thread
类来创建线程, 我们需要提供的只是线程函数, 或者线程对象, 同时提供必要的参数std::thread
表示单个执行的线程, 使用thread
类首先会构造一个线程对象, 然后开始执行线程函数
#include <iostream>
#include <thread> //需要包含的头
using namespace std;
void func(int a, double b) //有参数, 参数数量不限
{
cout << a << ' ' << b << endl;
}
void func2() //无参数
{
cout << "hello!\n";
}
int main()
{
thread t1(func, 1, 2); //提供参数
thread t2(func2);
//可以使用 lambda表达式
thread t3([](int a, double b){cout << a << ' ' << b << endl;}, 3, 4);
cout << t1.get_id() << "****" << endl; //可以使用 ge