函数 pthread_create()
用于在一个进程中创建一个线程。语法如下:
#include <pthread.h> int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);点击复制复制失败已复制
函数参数 thread
表示新创建的线程的标识符,或者成为线程的 ID
。参数 attr
指向一个 pthread_attr_t
类型的结构体,用以指定新创建的线程的属性(如线程栈的位置和大小、线程调度策略和优先级以及线程的状态),如果 attr
被设置为 NULL
,则线程将采用默认的属性。参数 start_routine
则是该函数的重点关注对象,通过函数原型可以看出,该参数为函数指针,因此该参数只须传入函数名即可。需要注意的是:传入的函数名并不等同于一般的程序中在主函数中调用子函数。他是线程的执行函数,通俗的说,线程执行的任务将封装在此函数中。参数 arg
作为仅有的参数,用于向第三个参数 start_routine
所指向的函数中传参。
pthread_create()
函数的参数 thread
其类型为 pthread_t
,本质上是一个经强制转化的无符号长整形的指针。一个线程可以通过 pthread_self()
来获取自己的 ID
:
#include <pthread.h> pthread_t pthread_self(void);