线程的创建函数pthread_create()的使用方法

线程创建函数的解读

int pthread_create (pthread_t *__restrict __newthread,
			          const pthread_attr_t *__restrict __attr,
			         void * (*__start_routine) (void *),
			         void *__restrict __arg) __THROWNL __nonnull ((1, 3));	  

说明:
创建的线程并不具备与主线程(即调用pthread_create()的线 程)同样的执行序列,而其逻辑是在start_routine(arg)函数中运行。
第一个参数thread返回创建的线程ID,
第二个参数我们也设为空指针,这样将生成默认属性的线程。
当创建线程成功时,函数返回0,若不为0则说明创建线程 失败,常见的错误返回代码为EAGAIN和EINVAL。前者表示系统限制创建新的线程,例如线程数目过多了;后者表示第二个参数代表的线程属性值非法。
创建线程成功后,新创建的线程则运行参数三和参数四确定的函数,原来的线程则继续运行下一行代码。
参数:
第一个参数为指向线程标识符的指针。
第二个参数attr是创建线程时设置的线程属性。
第三个参数是线程运行函数的起始地址。回调函数。
最后一个参数是运行函数的参数。线程函数的参数,线程传参数。
返回值: 0表示创建线程成功,非0表示失败。
补充:

  1. Unix 线程传参数时,注意事项:
    线程函数要求的格式void * thread_function(void * argc);
  2. 编译要连接静态库
    pthread_create()系列函数是Unix库函数,不是Linux库函数,编译时需要连接静态库 所以编译要添加选项-lpthread ;
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值