多线程
线程和进程的区别?
进程:进程是一个程序对一个数据集的动态执行过程,是分配资源的基本单位。每个进程拥有独立的内存单元,可以独立运行,进程之间需要通过显式机制进行通信,如管道、消息队列和共享内存等。 线程:线程是进程内的一个基本调度单位,是比进程更小的执行单元。线程共享进程的资源,包括内存和文件描述符,因此线程之间的通信更加方便快捷,切换开销较小。 包含关系:进程是资源分配的基本单位,每个进程可以包含多个线程。也就是说,线程是进程中的执行单元。 生命周期:线程的生命周期依赖于它所处的进程。当一个进程结束时,所有属于该进程的线程都会被终止。 资源共享:同一个进程内的多个线程可以共享该进程的资源(如内存、文件描述符等),而不同进程之间的资源是隔离的。
❒ 二者对比 ✔ 进程是正在运行程序的实例,进程中包含了线程,每个线程执行不同的任务。 ✔ 不同的进程使用不同的内存空间,在当前进程下的所有线程可以共享内存空间。 ✔ 线程更轻量,线程上下文切换成本一般上要比进程上下文切换低(上下文切换指的是从一个线程切换到另一个线程)。