💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] <br> <br> # 进程 进程的目的是担当分配系统资源(CPU时间、内存)的实体 <br> 源代码: 可执行文件:.exe,执行后产生进程 进程:进程是动态的,是可执行文件的数据映射到内存,CPU要逐条执行内存中的指令,产生了进程 <br> 硬件资源:CPU、内存 <br> LInux核心系统 任务调度:单核操作系统执行多个程序,需要把CPU时间分为时间片,轮询执行进程A、B 内存管理 <br> 主进程专门负责调度子进程。执行可执行文件后产生主进程,之后如果有子进程再产生 一般来说,主进程的PID较小,子进程通过主进程fork产生,至少分工不一样 <br> <br> # 线程 线程是操作系统能够进行运算调度的最小单位。 进程进行fork生成子进程时,会将主进程的数据和代码空间都生成一份,造成资源大量浪费,这时需要轻量级的调度单位。 线程共享进程的内存空间,消耗资源更少。进程依赖主线程运行。 <br> <br> # 协程 是一种用户态的轻量级线程,无法利用多核资源 有自己的上下文,切换自己控制;进程线程的切换由操作系统控制 <br> <br> # CPU密集型 运算量较大,需要长时间占用CPU CPU密集型应用的发展:多进程 -> 多线程 <br> <br> # IO密集型 负责将数据转发,或者简单加工 最大的IO开销:网络、外存 IO密集型应用的发展:多进程 -> 多线程 -> 事件驱动 -> 协钱 多进程、多线程无法解决同步问题 <br> <br> # 进程与线程 操作系统的设计 以多进程的形式,允许多个任务同时进行 以多线程的形式,允许单个任务分为不同的部分进行 提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源 资源共享 ![](https://box.kancloud.cn/a24b17ac15f3bc887d6ff96db10157f1_594x367.png)