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