c++介绍进程和线程区别

进程是程序运行的实例,是操作系统分配的资源的基本单位,每个进程有自己独立的地址空间,数据,代码段,相互独立。

特点:

独立性:进程之间的资源相互独立,一个进程的崩溃不会影响其他进程。

资源分配单位:每个进程有独立的内存空间,文件句柄,全局变量。

进程间通信复杂:由于进程之间相互独立,进程通信需要额外的进制(如管道,消息队列,信号号,信号量,共享内存等)。

进程切换开销大:切换进程时,操作系统要保存和恢复寄存器,内存映射等。

进程的生命周期:1.创建(fork),2.就绪:等待cpu分配时间片3.运行:进程正在执行。4阻塞:进程等待io设备。5.终止:进程执行完毕或被终止。

线程:是进程最小的执行单元,多个线程可以共享资源(如:内存,全局变量,文件句柄),线程是更轻量级的调度单位。

特点:

共享进程资源:同一个进程内多个线程可以共享代码段,数据段,堆等。

线程间通信:由于现成内存共享,可以直接访问全局变量,不需要复杂的IPC机制。

线程切换开销较小:线程切换比进程快,因为线程共享进程资源,不需要切换内存空间。

同步问题:多个线程共享数据时,需要用锁,信号量,条件变量等级制避免数据竞争。

c++介绍进程和线程区别_第1张图片

你可能感兴趣的:(c++,c++)