函数原型:int pthread_create(pthread_t *tid, const pthread_attr_t *tattr, void*(*start_routine)(void *), void *arg);
功能:创建一个新的线程,并将线程加入当前进程
头文件:#include <pthread.h>
pthread非linux系统的默认库,需手动链接-线程库 -lpthread
参数:
tid:指向线程标识符的指针
tattr:设置线程属性,可由pthread_attr_init()函数创建默认属性对象
start_routine:线程运行函数的起始地址,注意start_routine的返回值地址必须无效
arg:运行函数的参数,arg首选动态从堆上分配内存(进程,这样资源可以由程序控制回收,delete),
从栈上(线程)分配内存可能导致地址无效或在线程终止时地址被重新分配
返回值:
pthread_create() 在调用成功完成之后返回零。其他任何返回值都表示出现了错误。如果
检测到以下任一情况,pthread_create() 将失败并返回相应的值。
EAGAIN
描述: 超出了系统限制,如创建的线程太多。
EINVAL
描述: tattr 的值无效。