pthread库进行多线程编程
pthread库的函数:
1、pthread_create(),创建线程
原型int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict attr,void *(*start_rtn)(void),void *restrict arg);
返回值:0代表创建成功,否则是错误号
使用方法:
声明pthread_t tid,用来标示线程id;
pthread_create(&tids,NULL,SayHello,NULL);
第一个参数是标识线程Id,第二个参数是线程属性,无特殊需要NULL即可,第三个参数是开启线程的函数,需要声明为void* Fun(void* args),第四个参数是传入函数的参数,需要强制类型转换为void*,且可以用结构体传入多个参数
2、pthread_join(),等待线程结束
原型:int pthread_join( pthread_t thread, void **value_ptr);
返回值:0代表成功,否则错误号
使用方法:
pthread_join将会阻塞,直到相应id的线程返回,回收资源;第二个参数用来接收pthread_exit()存放的返回值;如果主进程退出了,直接返回。
3、pthread_exit(),退出当前线程
原型:void pthread_exit(void* retval)
使用方法:
调用退出当前线程,类似进程中exit()退出进程,可以传递一个指针,