pthread_create函数
时间: 2023-08-31 18:09:08 浏览: 79
`pthread_create`函数是POSIX线程库中的函数之一,用于创建一个新的线程。其原型如下:
```c
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine) (void *), void *arg);
```
其中,`thread`是指向新线程标识符的指针,`attr`是指向线程属性的指针(通常为NULL),`start_routine`是指向线程函数的指针,`arg`是传递给线程函数的参数。函数成功时返回0,失败时返回一个非0错误码。
当调用`pthread_create`函数时,它会创建一个新的线程,并在新的线程中执行`start_routine`函数。线程函数的返回值是一个指向线程返回值的指针,可以通过`pthread_join`函数获取该返回值。线程函数的参数由`arg`指定。
在使用`pthread_create`函数创建线程时,需要注意以下几点:
1. 线程函数必须是一个可重入的函数,即不依赖于全局变量和静态变量,也不依赖于调用栈中的临时变量。
2. 线程函数的返回值必须是一个指向堆上分配的内存空间的指针,该内存空间用于存储线程的返回值。
3. 线程函数必须使用`pthread_exit`函数来退出线程,而不是使用`return`语句。
4. 在使用`pthread_create`函数创建线程时,可以传递一个指向线程属性的指针,用于设置线程的属性,例如线程的调度策略、优先级、堆栈大小等等。如果不需要设置线程属性,可以将该参数设置为NULL。
阅读全文
相关推荐















