广西住房和城乡建设网站视频专栏,海口模板网站建站,手机商城官网旗舰店,阿里巴巴官网下载带你轻松理解进程与线程的区别与联系#xff1a;
进程线程定义资源分配和拥有的基本单位CPU调度的基本单位切换情况对应进程的CPU环境的保存以及新进程环境的设置保存和设置程序计数器#xff0c;少量的寄存器#xff0c;以及对应的线程栈切换者操作系统操作系统切换过程用…带你轻松理解进程与线程的区别与联系
进程线程定义资源分配和拥有的基本单位CPU调度的基本单位切换情况对应进程的CPU环境的保存以及新进程环境的设置保存和设置程序计数器少量的寄存器以及对应的线程栈切换者操作系统操作系统切换过程用户态-内核态-用户态用户态-内核态-用户态拥有资源CPU资源内存资源文件资源等程序计数器少量寄存器线程栈等并发性不同进程之间切换实现并发各自占有CPU实现并行一个进程内部的多个线程并发执行系统开销切换虚拟地址空间切换页表切换内核栈和硬件上下文开销很大切换时只需要保存和设置少量寄存器的内容开销很小通信进程间通信需要借助操作系统线程间可以直接读取进程数据段全局变量来实现通信
线程的优点
创建一个新线程的代价要比创建一个新进程小得多。与进程之间的切换相比线程之间的切换需要操作系统做的工作要少很多。线程占用的资源要比进程少很多。能充分利用多处理器的可并行数量。在等待慢速I/O操作结束的同时程序可执行其他的计算任务。计算密集型应用为了能在多处理器系统上运行将计算分解到多个线程中实现。I/O密集型应用为了提高性能将I/O操作重叠。线程可以同时等待不同的I/O操作。
线程异常
单个线程如果出现除零野指针问题导致线程崩溃进程也会随着崩溃。线程是进程的执行分支线程出异常就类似进程出异常进而触发信号机制终止进程进程终止该进程内的所有线程也就随即退出
线程共享进程数据但是也拥有自己的一部分数据
线程ID少量寄存器栈errno信号屏蔽字调度优先级
进程的多个线程共享 同一地址空间,因此Text Segment代码段、Data Segment数据段都是共享的,如果定义一个函数,在各线程中都可以调用,如果定义一个全局变量,在各线程中都可以访问到,除此之外,各线程还共享以下进程资源和环境:
文件描述符表信号处理方式当前工作目录用户ID和组ID