python-进程VS线程

概述

多进程:是让操作系统实现多任务,如:同时听歌、肝游戏、聊天

多线程:是让一个程序实现多任务,如:迅雷同时下载多个文件、游戏多个人物

相同点

  • 都能实现多任务

不同点

  1. 线程共享内存空间;进程的内存是独立的

  2. 同一个进程的线程之间可以直接通信;两个进程想通信,通过其他技术实现

  3. 一个线程可以控制和操作同一进程里的其他线程;但是进程只能操作子进程

  4. 可靠性。进程间不会互相影响。一个线程崩溃会导致整个进程崩溃

  5. python的多线程有gil锁,不是真正的多线程

应用场景

  • 计算密集型
    计算密集型的任务主要 消耗CPU,所以计算密集型的任务一般使用 多进程。
    如:科学计算、视频解码

  • IO密集型
    IO操作 大部分时间都在等待IO操作完成(因为IO的速度远远低于CPU和内存的速度),不占用CPU,一般使用 多线程
    如:网络编程(web应用、socket通信软件)、磁盘IO、内存读写数据等


原文出处:/show_1EF2puql6VGN.html