C++成员函数如何调用线程
来源:互联网 发布:淘宝上回收黄金靠谱吗 编辑:程序博客网 时间:2024/06/05 09:58
C++成员函数如何调用线程
假设在成员函数为 task1,在task1中想要采用线程方式调用成员函数task2,从而提升程序运行速度,可以采用如下方式:
void ThreadTest:: task1() { thread t(&ThreadTest::task2, this, 1); //调用task2,注意这里调用的方式,task2是ThreadTest类的另一个成员函数,最后一个参数1为放入task2中的参数 int N = 100; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) sum1 += (i + j); cout << "task1: " << i << endl; } t.join(); //等待线程结束}
完整代码:
main函数
#include "stdafx.h"#include <iostream>#include <thread>#include "ThreadTest.h"using namespace std;int main(){ ThreadTest t1; t1.task1(); cout << "test" << endl; cout << "threads: "<<thread::hardware_concurrency() << endl; system("pause"); return 0;}
ThreadTest类 cpp
// ThreadTest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <thread>#include "ThreadTest.h"using namespace std;int N = 100;int sum1 = 0, sum2 = 0;void ThreadTest:: task1() //用于比较的函数{ thread t(&ThreadTest::task2, this); int N = 100; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) sum1 += (i + j); cout << "task1: " << i << endl; } t.join();}void ThreadTest::task2() //用于比较的函数{ for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) sum2 += (i + j); cout << "task2: " << i << endl; } cout << "sum2: " << sum2 << endl;}
ThreadTest.h
#pragma onceclass ThreadTest{public: void task1(); void task2();};
0 0
- C++成员函数如何调用线程
- 线程调用成员函数
- 如何在C代码中调用C++非成员函数
- 线程函数能调用成员函数吗?
- 成员函数作为线程函数调用
- 成员函数作为线程函数调用
- 跨线程调用MFC成员函数
- 线程函数如何共享类成员
- 如何实现类成员函数创建线程
- 多线程,成员函数内创建线程,线程函数调用类内的其他成员函数
- const成员函数如何调用non-const成员变量
- 静态成员函数如何调用非静态成员变量
- C++使用线程函数pthread_create时,调用的成员函数要定义为静态成员函数
- C++:如何声明和定义成员函数
- 创建线程调用类成员函数的方法。
- C++线程回调函数调用类成员函数方法
- C++ 11 线程调用类的成员函数解决办法
- qt 如何调用c函数
- 论文学习:在线学习算法综述
- 购物车数字加减按钮
- 自己的垃圾Treap
- 机器学习中的卷积
- VMware Workstation虚拟机克隆CentOS7 出现的网络问题解决
- C++成员函数如何调用线程
- Linux任务前后台切换
- Socket编程 TCP粘包问题及解决方案
- oracle异常机制(在循环中)
- Python 读取某个目录下所有的文件
- oracle 分割,号
- Monkey测试
- Java Jxl Excel 操作总结6(项目实例三)
- xss