通过 pthread_create()函数创建新线程。
#include<pthread.h>
int pthread_create( pthread_t * restrict tidp,
const pthread_attr_t *restrict attr,
void * (*start_rtn) (void*),
void *restrict arg);
若成功,返回0;否则,返回错误编码
tidp:新创建的线程ID会被设置成tidp指向的内存单元。
attr:用于定制各种不能的线程属性,默认为NULL。
start_rtn:新创建的线程从start_rtn函数的地址开始运行,该函数只有一个void类型的指针参数即arg,如果start_rtn需要多个参数,可以将参数放入一个结构中,然后将结构的地址作为arg传入。
函数pthread_join用来等待一个线程的结束,线程间同步的操作。
#include <pthread.h>
int pthread_join(pthread_t thread, void **retval);
描述 :pthread_join()函数,以阻塞的方式等待thread指定的线程结束。当函数返回时,被等待线程的资源被收回。如果线程已经结束,那么该函数会立即返回。并且thread指定的线程必须是joinable的。
参数 :thread: 线程标识符,即线程ID,标识唯一线程。retval: 用户定义的指针,用来存储被等待线程的返回值。
返回值 : 0代表成功。 失败,返回的则是错误号。
网友评论