pthread_create例子
时间: 2023-08-15 11:13:44 浏览: 149
pthread代码实例
下面是一个简单的pthread_create函数的例子:
```cpp
#include <iostream>
#include <pthread.h>
void* threadFunction(void* arg) {
int* numPtr = static_cast<int*>(arg);
int num = *numPtr;
std::cout << "Thread received number: " << num << std::endl;
return nullptr;
}
int main() {
pthread_t thread;
int number = 42;
int result = pthread_create(&thread, nullptr, threadFunction, &number);
if (result != 0) {
std::cerr << "Failed to create thread: " << result << std::endl;
return -1;
}
// 等待线程结束
pthread_join(thread, nullptr);
return 0;
}
```
在这个例子中,我们定义了一个名为`threadFunction`的线程函数,它接收一个`void*`类型的参数,并将其转换为`int*`类型。在线程函数中,我们获取传递给线程的整数值,并在控制台上打印出来。
在主函数中,我们使用`pthread_t`类型的变量`thread`来表示线程,然后使用`pthread_create`函数创建一个新的线程。第一个参数是指向线程标识符的指针,第二个参数用于设置线程属性(我们在这里使用默认值nullptr),第三个参数是指向线程函数的指针,最后一个参数是传递给线程函数的参数。
如果`pthread_create`成功创建了线程,它将返回0。否则,它将返回一个非零值,表示创建线程失败。在这里,我们检查`pthread_create`的返回值,如果不为0,则输出错误消息并返回-1。
最后,我们使用`pthread_join`函数等待线程结束。这样可以确保主线程在子线程执行完毕之前不会退出。
希望这个例子能帮助你理解pthread_create函数的用法!
阅读全文