2.1_5 线程的概念

2.1_5 线程的概念

引入进程之前,系统中各个程序只能串行执行。eg:音乐和QQ无法同时运行

引入进程之后:音乐和QQ可以同时运行

如何理解进程和线程,ChatGPT给出的结果是这样的:

进程(Process)和线程(Thread)是计算机科学中两个重要的概念,它们都涉及到程序的执行和并发性。

  1. 进程(Process):

    • 一个进程是一个独立的执行单元,它包括了程序代码、数据和系统资源的副本。
    • 每个进程都有自己独立的内存空间,相互之间不共享数据。
    • 进程之间通常通过进程间通信(IPC,Inter-Process Communication)来进行数据交换。
    • 进程是操作系统进行资源分配和调度的基本单位。
  2. 线程(Thread):

    • 一个线程是一个进程中的执行单元,是进程的子集。多个线程共享同一个进程的资源,包括代码、数据和打开的文件等。
    • 线程之间共享相同的地址空间,因此它们可以直接访问相同的数据。
    • 由于线程共享进程的资源,线程间的通信相对于进程来说更为方便,但也需要注意线程同步的问题。
    • 线程是操作系统进行调度的基本单位。

关于它们的理解,可以通过以下几个方面:

  • 并发性: 进程是独立执行的,一个进程的执行不受其他进程的影响。而线程是进程的一部分,多个线程在同一个进程中并发执行,它们共享进程的资源。

  • 通信: 进程间通信较为复杂,需要使用IPC机制,如消息队列、信号量、管道等。线程之间通信相对简单,因为它们共享相同的地址空间,可以直接访问共享数据。

  • 资源开销: 创建和撤销进程比较耗费资源,因为每个进程都有独立的内存空间。相比之下,线程的创建和销毁开销较小,因为它们共享进程的资源。

  • 并行性: 进程可以在多核系统中并行执行,因为它们有独立的内存空间。线程也可以在多核系统中并行执行,但需要注意线程间的同步问题。

总体来说,进程和线程是为了实现程序的并发执行而提出的概念,它们各有优势和劣势,应根据具体的应用场景选择合适的方式。

为什么引入线程

2.1_5 线程的概念_第1张图片

可以这样理解:一个进程就是一个APP的运行,一个进程里的多个线程就是需要同时运行的功能。

eg : QQ发消息和传输文件。

可以把线程理解为轻量级进程

线程是一个基本的CPU执行单元,也是程序执行流的最小单位

引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务(如QQ视频、文字聊天、传文件)

引入线程后,进程只作为除CPU之外的系统资源的分配单元 (如打印机、内存地址空间等都是分配给进程的)

带来的变化
资源分配,调度
传统进程机制中,进程是资源分配,调度的基本单位
引入线程后,进程是资源分配的基本单位,线程是调度的基本单位
并发性
传统进程机制中,只能进程间并发
引入线程后,各线程间也能并发,提升了并发度
系统开销
传统的进程间并发,需要切换进程的运行环境,系统开销很大
线程间并发,如果是同一进程内的线程切换,则不需要切换进程环境,系统开销小
引入线程后,并发所带来的系统开销减小

你可能感兴趣的:(linux)