进程基础
进程是程序的执行过程,一个程序可以对应多个进程
程序是进程的”模板“,进程是程序的“运行态体现”
进程的执行过程本质是按程序指令逐步推进,程序的逻辑决定进程的行为
同一程序的多个进程共享程序的代码段(只读,到各自拥有数据段)
进程的组成
进程由进程控制块(PCB),文本段,数据段
进程的创建
多进程相关函数
特殊进程
进程间通信
线程概念
在linux内核中,没有独立的“线程”数据结构,线程的本质是“共享资源的轻量级进程(LWP)
pthread_create函数
原型:int pthread_create(pthread_tthread,const pthread_attr_tattr,void*(start_routine) (void),void*arg);
创建一个新的线程
thread:用于存储新创建线程的唯一标识符(线程id)
attr:用于指定新线程的属性,若是NULL,则使用系统默认属性
start_routine:指定线程的入口函数
arg:用于给线程入口函数传递参数,若无需参数,可设为NULL
pthread_self函数
pthread_t pthread_self(void)
获取调用线程的线程id
pthread_join函数
int pthread_join(pthread_t thread,void**retval)
thread:存储要回收资源的线程ID
retval:用来接收线程退出的状态值
pthread_attr_setdetachstate函数
int pthread_attr_setdetachstate(pthread_attr_t *attr,int detachstate)
设置线程属性对象的分离状态
attr:设置分离状态的线程属性对象
detachstate:用于指定线程的分离状态
PTHREAD_CREATE_JOINABLE:表示将线程设置为结合态
PTHREAD_CREATE_DETACHED:表示将线程设置为分离态
pthread_detach函数
int pthread_detach(pthread_t thread);
标记一个线程为分离态