C++如何调用class类中方法实现多线程编程

众所周知在使用C++创建多线程执行时只能传递一个方法到thread模块中去创建线程执行。但是有时候我们往往需要使用多线程去执行某个对象中的方法,而对象中的方法却无法直接加载到thread模块中,本文通过两种调用方式实现多线程thread如何调用C++类中的方法。

头文件 stdafx.h

#pragma once
#include<iostream>
#include<string>
#include <thread>
#include <Windows.h>

源文件 thread.cpp

#include "stdafx.h"
using namespace std;
 
void* task2();
 
class Task
{
    public:
        static void* task1()
        {
            printf("aa");
            Sleep(1000);
            printf("cc");
            return 0;
        }
        friend void* task2()
        {
            printf("bb");
            return 0;
        }
 
    public:
        int a = 1;
};
 
int main()
{
    thread thread1(&Task::task1);
    thread thread2(task2);
    thread1.join();
    thread2.join();
 
    for (int i = 0; i < 5; i++)
    {
        cout << "Main thread is working !" << endl;
    }
    system("pause");
 
}

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术博客

Asp.Net Web API 2第六课——Web API路由和动作选择

      Asp.Net Web API第一课——入门http://www.cnblogs.com/aehyok/p/3432158.html

9620
来自专栏Python小屋

Python编程常见出错信息及原因分析(1)

1.被0除错误 演示代码: >>> 2 / 0 Traceback (most recent call last): File "<pyshell#0>",...

31560
来自专栏JetpropelledSnake

Python学习笔记之Python对象反射、类反射、模块反射

24540
来自专栏有趣的Python和你

Flask学习笔记之模板(一)

之前的视图函数返回的都是字符串,这样是很不利于网站建设,大家都知道,我们都网页构造三大元素(html,css,js),那这些数据如何通过视图函数返回了?答案就是...

13720
来自专栏Python小屋

Python快速计算Fibonacci数列中第n项的方法

from time import time from functools import lru_cache def fibo1(n): '''递归法''' ...

33670
来自专栏IT探索

Protocol Buffer使用手册

2)同时,如果1个.proto文件定义了多个具有不同依赖的message,会导致依赖膨胀;建议每个文件包含尽可能少的message。

13330
来自专栏JackeyGao的博客

Django小技巧08: Blank or Null

Django Model API 中提供了blank和null两个参数, 非常容易混淆。当我第一次使用 Django 的时候, 总是不能恰当的使用这两个参数。

8130
来自专栏我的技术专栏

Java Thread wait、notify与notifyAll

15720
来自专栏黑白安全

C++如何调用class类中方法实现多线程编程

众所周知在使用C++创建多线程执行时只能传递一个方法到thread模块中去创建线程执行。但是有时候我们往往需要使用多线程去执行某个对象中的方法,而对象中的方法却...

8220
来自专栏武军超python专栏

2018-7-16python中四种组合数据类型和pycharm的安装和使用

集合(set) discard删除数据时如果集合里面没有那个数据什么也不做,集合相减可以直接用-,+*/都不能用

18850

扫码关注云+社区

领取腾讯云代金券