C++中使用Thread类需要包含啥头文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中使用Thread类需要包含啥头文件相关的知识,希望对你有一定的参考价值。

Java中可以直接从类Thread继承,C++中可以吗?如果可以,需要包含什么头文件呢?

  包含头文件 #include <thread>

1、std::thread 的使用非常放便和强大,该类几乎可以把任何函数作为线程主函数。
2、用法:
    首先包含头文件 #include <thread>
    定义线程主函数: 根据不同的需要,线程的主函数可以是普通函数、函数对象、lambda表达式或者类成员函数。
    建立std::thread对象,并把线程要运行的函数(线程主函数)以及相应的函数参数通过构造函数传递给该对象, 构造函数通常会海纳百川。
例程:

#include <thread>
#include <iostream>
class ThreadMain 
public:
    void operator()() 
        run();
    
    void run() 
        std::cout << "Hello, C++11 thread\\n";
    
;
void generalFunc(int data) 
    std::cout << "Hello, C++11 thread\\n";

int main() 
    ThreadMain tm;
    std::thread t1(generalFunc, 1);        /*传递普通函数指针和参数0给thread对象t1*/
    std::thread t2(&ThreadMain::run, &tm);   /*将成员函数传递给thread对象t2, 并且传递调用该函数的对象的指针&tm*/
    std::thread t3(tm);     /*传递一个函数对象给t3*/
    std::thread t4([]()  std::cout << "Hello, C++11 thread\\n"; ); /*传递lambda表达式给thread对象t4*/
    /* 调用join函数等待线程终止,并回收线程所占资源*/
    t1.join();
    t2.join();
    t3.join();
    t4.join();

参考技术A 看操作系统,标准C++没有现成的概念,但是c里面提供了这些线程的api
windows和linux略有不同本回答被提问者采纳
参考技术B #include <thread>

以上是关于C++中使用Thread类需要包含啥头文件的主要内容,如果未能解决你的问题,请参考以下文章

CString类型要包含啥头文件

使用multimap包含啥头文件

c 中conio.h是啥头文件?c++中能用吗

c语言里有memset()怎么用?需要啥头文件?

windows.h是啥头文件

C++ 多线程std::thread 详解