C++ 线程函数通过引用传递
C++ Thread function pass by reference
我想知道如何添加一个通过引用传递给线程的函数。整数示例在互联网上很容易,我找到了,但找不到任何通过引用传递的示例?
#include <iostream>
#include <thread>
void add(int a, int b)
{
std::cout << a + b << std::endl;
}
void sub(int c, int d) {
std::cout<< c - d << std::endl;
}
void addp(int &a1, int &a2) {
std::cout << a1 + a2 << std::endl;
}
int main() {
int number1 = 25;
int number2 = 50;
toplamap(number1, number2);
std::thread first(add, 10, 29);
std::thread second(sub, 29, 10);
std::thread third(addp, number1, number2);
first.join();
second.join();
third.join();
return 0;
}
解决方案 1:使用std::ref
:
int number1 = 25;
int number2 = 50;
std::thread third(addp, std::ref(number1), std::ref(number2));
解决方案 2:使用 lambda:
int number1 = 25;
int number2 = 50;
std::thread third([&] { addp(number1, number2); });
相关文章:
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- condition_variable、引用和线程:谁拥有锁?
- 启动类函数作为失去引用的线程
- 将常量引用传递给线程
- 线程安全的引用计数队列C++
- 具有对象的右值引用的线程
- C++11 多线程,通过引用传递
- C++ 线程函数通过引用传递
- C 11线程汇编错误传递字符串作为复制的引用
- C++ 11 您可以通过不同线程中的引用安全地传递和访问 std::atomics 吗?
- 通过引用将变量传递给多个线程会损坏堆
- 线程函数中的通用引用
- 通过引用和多线程传递对象
- 如何在类中进行 c++ 多线程处理(将线程引用保留为成员 var)
- 为线程构造函数传递引用以将其绑定到函数失败
- 通过在引用线程对象来传递取消引用的“this”指针来在函数对象构造函数中创建线程是好是坏
- 对抽象类的引用不能传递给线程函数?
- std::线程传递向量元素(按引用)
- 取消引用指向不同线程中的原子对象的只读非原子指针是否安全
- 引用计数类和多线程