Cplusplus开启线程方法
时间: 2023-09-30 16:05:42 浏览: 68
在 C++ 中,可以使用以下两种方式来开启线程:
1. 使用 std::thread 类
这是 C++11 标准中提供的一种方式,可以使用 std::thread 类来创建并开启线程。具体方法如下:
```
#include <iostream>
#include <thread>
void thread_func()
{
std::cout << "Running in thread " << std::this_thread::get_id() << std::endl;
}
int main()
{
std::thread t(thread_func);
t.join();
return 0;
}
```
在上面的例子中,我们定义了一个函数 `thread_func`,它将在新线程中运行。在 `main` 函数中,我们使用 `std::thread` 类创建了一个新线程,并将 `thread_func` 函数作为参数传递给它。最后,我们调用了 `join` 函数来等待线程结束。
2. 使用 POSIX 线程库
POSIX 线程库是一种跨平台的线程库,可以在 Linux、Unix 和 macOS 等操作系统上使用。使用 POSIX 线程库开启线程的方法如下:
```
#include <iostream>
#include <pthread.h>
void* thread_func(void* arg)
{
std::cout << "Running in thread " << pthread_self() << std::endl;
return nullptr;
}
int main()
{
pthread_t thread;
pthread_create(&thread, nullptr, thread_func, nullptr);
pthread_join(thread, nullptr);
return 0;
}
```
在上面的例子中,我们定义了一个函数 `thread_func`,它将在新线程中运行。在 `main` 函数中,我们使用 `pthread_create` 函数创建了一个新线程,并将 `thread_func` 函数作为参数传递给它。最后,我们调用了 `pthread_join` 函数来等待线程结束。注意,`pthread_join` 函数需要传递一个指针参数来接收线程的返回值,这里我们传递了 `nullptr`,表示我们不关心线程的返回值。
阅读全文