pthread_create函数

函数原型: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 的值无效。

猜你喜欢

转载自blog.csdn.net/cainiao000001/article/details/80377180
今日推荐