目标:
    1:掌握进程与线程之间的区别
    2:掌握实际处理问题时进程与线程的优先选择:

    一:掌握进程与线程之间的区别

    进程:可以完成多任务,一个进程就相当于计算机中一个应用程序,多进程就相当于在计算机中打开多个qq应用程序

    线程:可以完成多任务,一个线程就相当于计算机中一个应用中的一个功能窗口,多线程相当于一个qq应用程序打开多个聊天窗口

    实例截图

    image.png

    使用区别:

    1:进程是系统进行资源分配的进本单元,线程是cpu调度和分派的基本单位,进程包括线程
    2:线程占用内存资源比进程少(划分尺度小),这使的多线程程序有高并发行
    3:多个进程运行时,每个进程都拥有独立的内存资源(多进程间不能共享全局变量),而多个线程运行时,共享一个内存(因此多线程间可共享全局变量),因此多进程相对于多线程更稳定

    图解:

    image.png

    进程与线程对比图示

    image.png

    注意事项:
    1:一个程序至少有一个进程(主进程),一个进程至少有一个线程(主线程)
    2:线程不能单独运行,必须依赖进程中运行(进程提供线程运行的资源),比如必须开启qq(进程)才能聊天(线程)


    二:实际处理问题时进程与线程的优先选择:

    1:需要频繁的创建销毁,优先选择线程,因为进程占用资源多,创建销毁慢,例如WEB服务器
    2:线程切换速度快,在需要大量计算,频繁切换时,使用线程,例如算法、图像处理
    3:多机分布用进程、多核分布用线程
    4:需要运行稳定优先用进程,想要运行速度快优先用线程

    5:cpu密集型(频繁操作),优先使用进程,因为现在python的解释器cpython存在GIL(全局解释器锁)创建互斥锁,会造成线程处理问题时,多核cpu处理问题变为单核cpu,进程不会出现这种现象

    6:i/o密集型可以使用线程

    注意事项:
    1:在以后实际处理问题时,要用进程+线程+协程的思想,不要选入非此即彼的思想中,灵活运用