本篇讲 python的 进程和线程。 对这两个 主要也是对知识点的理解。 一般不会有人让你手写多线程或多进程, 但肯定会有人问相关的理解。所以最基本要理解。
主要要理解如下三个问题
1: 什么是进程?
答案 : 定义: 进程是程序的一次执行。 可以和别的计算并行执行, 是系统进行资源分配和调用的一个独立单位
2 : 什么是线程?
答案: 进程内同时运行多个子任务, 这里面的子任务 被称为 线程。 多个任务之间 由操作系统快速切换, 形成同时进行的效果。
3: GIL是什么?有什么作用?(或者是问 python 线程为什么没有太大优势)
答案:
GIL是全局解释器锁,是python 设计时 为了数据安全所作的决定。 导致每个进程同时只能执行一个线程。
python 的多线程执行时 ,会有一个GIL锁,任何python执行之前,必须先获得GIL锁,然后执行100字节码,随后释放GIL锁,让其他线程有机会执行。 所以这个GIL实际上将所有的线程上了一个全局锁,导致多线程在python中 只能轮流执行。 进而使多线程无法利用多核。