pthread

//-----------------------------------------

/*
 * thread:	线程标识符
 * attr:线	程属性设置,通常取为NULL
 * start_routin:	线程函数的起始地址,是一个指向void的指针作为参数和返回值的函数指针。
 * arg:	传递给start_routin的参数
 * retval: 成功则为0.
 * */
//在线程创建以后,就开始运行相关的线程函数,在该函数运行完之后,该线程也就退出了。这也是线程退出的一种方法。
//另一种线程退出的方法是使用函数pthread_exit,这是线程的自主行为。
//在使用线程函数时,不能随意使用exit()退出函数进行出错处理,由于exit()的作用是使调用进程终止。而一个进程包含多个线程,因此调用exit之后,该进程
//中的所有线程都终止了。
/* 线程的默认属性为非绑定,非分离,默认1M的堆栈以及与父进程同样级别的优先级。 */
int pthread_create(pthread_t *thread, pthread_attr_t *attr, void*(*start_routin)(void*), void *arg));//创建线程

/*
 * retval:线程结束时的返回值,可由其他函数如pthread_join()来获取
 * */
void pthread_exit(void *retval);//自行终止线程

pthread_t pthread_self(void);

int pthread_equal(pthread_t thread1,pthread_t thread2);


int pthread_once(pthread_once_t *once_control,void(*init_routine)(void));


/* 进程之间的同步终止和释放资源用wait(),线程之间则用pthread_join()
 * pthread_join()可以用来将当前线程挂起来等待线程的结束,是一个线程阻塞函数。
 * 调用他的函数需要等到被等待的线程结束为止。
 * 当函数返回时,被等待线程的资源就被收回。
 * */
int pthread_join(pthread_t th, void **thread_return);
 
//下面两个函数用作被取消的线程内部,是接受还是忽略请求?若接受,是立刻终止操作还是等待某个函数的调用? 
pthread_setcancel();/*被其他线程终止时,需要调用pthread_setcancel()和pthread_setcanceltype()函数设置自己的取消状态。*/
pthread_setcanceltype();
 
/*
 * th:	要取消的线程的标识符
 * retval:	成功则返回0
 * */
//该函数在ndk开发中使用,提示未定义,我查找pthread.h头文件,发现确实没有该函数的定义,ubuntu下man也未找到。
int pthread_cancel(pthread_t th)
 


你可能感兴趣的:(pthread)