我正在尝试将一些计算分配到不同的线程中。大多数计算都需要几行代码,但需要时间来处理。
为了便于阅读,我不想为每个将被线程化的代码声明一个全局函数。
是否可以使用类似于以下的符号来调用线程?
thread t1(
for(int i=0;i<largeNumber;i++){
operation1;
operation2;
...
} );//End of t1
//other threads
t1.join();
换句话说,我可以将函数作为参数传递,而不必在全局范围内定义它吗?
(对不起,如果这是一个基本问题,我找不到合适的词来搜索)
答案 0 :(得分:3)
使用lambda函数:
thread t1( [] () { // This is lambda
for(int i=0;i<largeNumber;i++){
operation1;
operation2;
...
} });//End of t1
//other threads
t1.join();