pthread_create
时间: 2023-09-02 12:08:56 浏览: 34
pthread_create()是一个POSIX线程库函数,用于创建一个新的线程。它接受四个参数:指向线程标识符的指针、线程属性、指向函数的指针和函数参数。该函数成功时返回0,否则返回错误代码。例子代码如下:
```
#include <pthread.h>
#include <stdio.h>
void *myThread(void *arg){
printf("Hello from myThread!\n");
pthread_exit(NULL);
}
int main(){
pthread_t thread_id;
printf("Before thread creation.\n");
pthread_create(&thread_id, NULL, myThread, NULL);
printf("After thread creation.\n");
pthread_join(thread_id, NULL);
printf("After thread joined.\n");
return 0;
}
```
该程序创建了一个新的线程,并在新线程中输出“Hello from myThread!”。主线程等待新线程结束后再输出“After thread joined.”。
相关问题
Pthread_create
pthread_create是一个POSIX线程库函数,用于创建一个新的线程。它的原型如下:
```c
#include <pthread.h>
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine) (void *), void *arg);
```
其中,`thread`参数是指向线程标识符的指针,`attr`参数是指向线程属性的指针,`start_routine`参数是指向线程函数的指针,`arg`参数是传递给线程函数的参数。
调用pthread_create函数会创建一个新的线程,并将其加入到进程中。新线程会从`start_routine`函数开始执行,并且可以通过`arg`参数传递参数给该函数。如果不需要传递参数,可以将`arg`设置为NULL。
在创建线程时,可以通过`attr`参数指定线程的属性,例如线程的调度策略、优先级等。如果不需要指定属性,可以将`attr`设置为NULL。
当线程函数执行完毕时,线程会自动退出,并且会自动释放其占用的资源。
Android pthread_create
在Android开发中,pthread_create是一个用于创建线程的函数。它是基于POSIX标准的线程库,可以在Android系统上使用。
pthread_create函数的原型如下:
```
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
```
参数说明:
- thread:指向pthread_t类型的指针,用于存储新创建线程的标识符。
- attr:指向pthread_attr_t类型的指针,用于设置线程的属性。可以传入NULL,表示使用默认属性。
- start_routine:指向线程函数的指针,新线程将从该函数开始执行。
- arg:传递给线程函数的参数。
调用pthread_create函数后,系统会创建一个新的线程,并开始执行start_routine函数。线程函数的返回值和参数类型都是void*,可以根据需要进行类型转换。
需要注意的是,在Android开发中,通常更推荐使用Java中的Thread类来创建和管理线程,因为它提供了更高级的封装和更方便的操作方式。但如果需要与C/C++代码进行交互或者使用一些底层的特性,可以选择使用pthread_create函数来创建线程。