进程和线程之间的区别

进程 线程
定义 资源单位(房子) 执行单位(代码)
优点 多核CPU密集型节省时间 节省资源、速度快、多个线程、IO密集型节省资源
缺点 浪费资源,创建耗费时间长 同一进程下多线程无法执行,无法利用多核优势(目的:GIL控制python解释器内存管理)
数据相关 进程之间数据相互隔离,可以通过队列模块和IPC机制(借助队列实现通信) 线程之间数据相互共享
空间 进程有独立的内存空间 线程依托于进程,没有独立的内存空间,同一进程的线程共享本进程的地址空间。
执行过程 每个独立的进程程有一个程序运行的入口、顺序执行序列和程序入口 不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制
开启方式 开启进程必须在main下面执行代码 开启线程不需要在main下面执行代码 直接书写就可以 但是我们还是习惯性的将启动命令写在main下面
开启时间 进程需要创建申请空间开销大,速度教慢 创建线程的开销非常小 几乎是代码一执行线程就已经创建了
原文地址:https://www.cnblogs.com/Lance-WJ/p/12783684.html