查漏补缺:Linux进程与线程的区别

  1、概念的区别

  进程:是具有独立功能的程序在一个数据集合上运行的过程,是系统进行资源分配的基本单位,也是调度运行的基本单位。一个进程中可以包含多个线程。

  线程:是进程的一个实体,是CPU调度和分派的基本单位,是比进程更小的、可以独立运行的基本单位,除运行中必不可少的资源外,基本上不拥有自己的系统资源。

  2、成立要素

  进程四大要素:

    (1)一段可供进程执行的程序

    (2)独立的内核堆栈空间

    (3)进程控制块

    (4)独立的存储空间:即拥有专有的用户空间

  线程只有上述前三条,并不具备独立的存储空间。

  3、进程间通信和线程间通信方式

  进程间通信IPC:管道(pipe)、有名管道(fifo)、内存共享映射、信号量(semaphore)、消息队列(message queue)、信号(signal)、套接字(socket)

  线程间通信方式:共享内存、管道

  4、调度与切换

  线程上下文切换比进程上下文切换快得多

原文地址:https://www.cnblogs.com/lianshuiwuyi/p/7649429.html