#include <iostream>
#include <utility>
#include <thread>
#include <chrono>
void f1(int n)
{
std::cout << "function f1\n";
++n;
}
void f2(int& n)
{
std::cout << "function f2\n";
++n;
}
int main()
{
int value_n = 0;
int ref_n=0;
std::thread t2(f1, value_n + 1); // 按值传参
std::thread t3(f2, std::ref(ref_n)); // 按引用传参
t2.join();
t3.join();
std::cout << "value_n is " << value_n << '\n';
std::cout << "ref_n is " << ref_n << '\n';
}
运行结果
function f1
function f2
value_n is 0
ref_n is 1