linux下创建线程用到的函数和返回值

(1)int pthread_create(pthread_t*thread,const pthread_attr_t *attr,void*(*start_routine)(void *),void*arg)    

功能:创建一个新的进程,并将线程加入到当前进程

返回值:线程创建函数,创建成功返回0,失败返回相关错误代码;

参数:

thread:指向线程标识符的指针

tattr:设置线程属性,可由pthread_attr_init()函数创建默认属性对象

start_routine:线程运行函数的起始地址,注意start_routine的返回值地址必须无效

arg:运行函数的参数,arg首选动态从堆上分配内存(进程,这样资源可以由程序控制回收, delete,  从栈上(线程)分配内存可能导致地址无效或在线程终止时地址被重新分配

(2)pthread_t pthread_self(void)    

功能:gingneng获取线程ID函数,返回调用线程的ID;线程可以通过调用pthread_self函数获得自身线程标识。

(3)int pthread_equal(pthread_t  t1,pthread_t  t2)

目标:判断两个线程地址是否相等。

参数:两个线程id。

返回值:线程id相等,返回0;不相等,返回非0。返回值一定要注意,相等时才返回0。设置该函数

意义:不同平台线程id的类型不同。

(4)int pthread_join(pthread_t  thread,void ** retval)

目标:使已经结束的线程分离(detached)。

参数:回收线程的id,获取线程退出的返回值(可设置NULL不获取)。

返回值:成功返回0,失败返回错误码。

注:

retval指针的指向:线程return,则获得线程中函数的返回值;

线程被别的线程调用pthread_cancel()异常终止,则获得PTHREAD_CANCELED;

线程调用pthread_exit(void *retval)主动退出,则获得retval;

(5)int pthread_detach(pthread_t  thread)

目标:使目标线程变为detached,包括已结束但未分离的线程。

参数:目标线程id。

返回值:成功返回0,失败返回错误码。

(6)void pthread_exit(void*retval);

功能:主动进行线程退出。

参数:自己设定退出后的返回值。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值