std:thread 和 p_thread
时间: 2023-09-19 12:10:45 浏览: 99
std::thread 和 pthread 是用于在 C++ 和 C 语言中创建和管理多线程的库。
std::thread 是 C++11 引入的线程库,它提供了一种更现代化和高级的方式来创建和操作线程。使用 std::thread,你可以通过创建一个线程对象,并将一个函数或可调用对象作为参数传递给它来创建线程。std::thread 还提供了一些方便的方法来管理线程的生命周期、等待线程完成和访问线程的属性。
例如,下面是使用 std::thread 创建并启动一个新线程的示例:
```cpp
#include <iostream>
#include <thread>
void func() {
std::cout << "Hello from thread!" << std::endl;
}
int main() {
std::thread t(func);
t.join(); // 等待线程完成
return 0;
}
```
pthread (POSIX Threads) 是一个更底层和跨平台的线程库,适用于 C 语言。它提供了一组函数来创建、管理和同步线程。与 std::thread 不同,pthread 不是 C++ 标准库的一部分,但它在大多数 POSIX 兼容系统上可用。
下面是使用 pthread 创建并启动一个新线程的示例:
```cpp
#include <iostream>
#include <pthread.h>
void* func(void*) {
std::cout << "Hello from thread!" << std::endl;
pthread_exit(NULL);
}
int main() {
pthread_t thread;
pthread_create(&thread, NULL, func, NULL);
pthread_join(thread, NULL); // 等待线程完成
return 0;
}
```
总的来说,std::thread 是 C++11 提供的更高级的线程库,而 pthread 是一个底层的跨平台线程库。在使用时,你可以根据自己的需求和项目的要求选择适合的线程库。
阅读全文