线程:他是轻量级的进程,他有系统的库函数提供,linux中的man 2中的函数,属于系统调用;线程的创建是在进程之中,在linux中用task_struct来描述一个线程,(进程和线程都参与统一的调度),一个进程可以有多个线程,他们可以共享相同地址空间的多个任务。
一个进程中的多个线程共享以下资源:
1:代码段/指令
2:静态数据(全局变量,静态变量)
3:进程中打开的文件描述符
4:信号处理函数
5:用户id,组id
6:当前工作目录
一个进程中每个线程私有的资源:
1:线程号tid
2:寄存器
3:栈/堆(局部变量)
4:执行状态和属性
5:错误码(error)
----------------------------------------创建线程--------------------------------------
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine) (void *), void *arg);
Compile and link with -pthread.编译链接的时候需要-pthread
创建一个新的线程
thread :出参,保存