目录
1.线程创建
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg)
参数:
pthread_t *thread:传出参数,这个子线程的id的地址
const pthread_attr_t *attr:线程属性一般写为NULL
void *(*start_routine) (void *):此线程需要执行的函数指针,函数返回值需要为void*类型
void *arg:此线程需要执行的函数参数的地址,如果多个参数,则定义一个结构体封装参数
返回值:
创建成功返回0,否则返回错误号
头文件:
#include<pthread.h>
注意,当主线程销毁时,子线程也就不存在了,因为一个进程的所有线程共享同一块内存空间
2.线程退出
如果想要主线程销毁时,不影响子线程继续执行,需要用到线程退出函数
void pthread_exit(void* retval)
参数:
void* retval:自带数据,一般为当前线程想要返回的数据,不返回设置为NULL
用法:
可以在主线程逻辑的末尾使用,主线程退出后,该虚拟地址空间不会被释放