c++

c++创建线程的方式有哪些

小亿
120
2024-03-12 10:31:27
栏目: 编程语言

在C++中,创建线程有以下几种方式:

  1. 使用标准库中的std::thread类:可以通过包含头文件来使用std::thread类来创建线程。示例代码如下:
#include <iostream>
#include <thread>

void threadFunction() {
    std::cout << "Hello from thread!" << std::endl;
}

int main() {
    std::thread myThread(threadFunction);
    myThread.join();
    
    return 0;
}
  1. 使用POSIX线程库:可以使用POSIX线程库中的pthread_create函数来创建线程。需要包含<pthread.h>头文件。示例代码如下:
#include <iostream>
#include <pthread.h>

void* threadFunction(void* arg) {
    std::cout << "Hello from thread!" << std::endl;
    return NULL;
}

int main() {
    pthread_t myThread;
    pthread_create(&myThread, NULL, threadFunction, NULL);
    pthread_join(myThread, NULL);
    
    return 0;
}
  1. 使用C++11中的std::async函数:可以使用std::async函数来异步执行一个函数,并返回一个std::future对象,可以通过get()方法获取函数的返回值。示例代码如下:
#include <iostream>
#include <future>

int threadFunction() {
    std::cout << "Hello from thread!" << std::endl;
    return 42;
}

int main() {
    std::future<int> result = std::async(std::launch::async, threadFunction);
    std::cout << "Result: " << result.get() << std::endl;
    
    return 0;
}

以上是在C++中创建线程的几种方式,具体选择哪种方式取决于实际需求和项目环境。

0
看了该问题的人还看了