C++并发与多线程(3) | 其他创建线程的方式

 

1. 用类(可调用对象)

  必须要重载括号运算符,否则不是可调用对象。这种方式其实就是一个仿函数。

    示例:

 


#include 
#include 
using namespace std;

class TA
{
public:
  void operator() ()// 不能带参数
{
    cout << "子线程operator()开始" << std::endl;
    cout << "子线程operator()结束" << std::endl;
  }
};

int main()
{
  TA ta;
  thread mytobj3(ta);// ta:可调用对象
  mytobj3.join();

  cout << "main over" << std::endl;
  return 0;
}

这里有一些注意的要点,看下面这个程序:


#include 
#include 
using namespace std;

class TA
{
public:
  int& m_i;
  TA(int& i) :m_i(i) {};  // 构造函数
  void operator() ()    // 不能带参数
{

你可能感兴趣的:(C++,c++)