线程的创建函数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 ;

你可能感兴趣的:(C线程)