-
理解并简述并发 与 并行
并行就是同一时间做不同的任务,虽然看着像同时做,其实是CPU切换不同的任务,因为CPU执行和切换太快了,所以看上去像是同一时刻做不同任务罢了
并发:就是同一时刻只能执行一个任务,其他任务都在排队等待执行 -
理解线程 与 进程,并说明它们的应用场景
线程属于进程,一个程序加载到内存就是一个进程,需要CPU分配内存空间,默认一个进程有一个主线程,可以创建新的线程,线程是进程的最小执行单元,同一个进程之间的线程可以共享数据,不同进程之间不能共享数据
一般一个程序就是一个进程,进程中不同的任务就是线程
比如开启电影,音乐,就是不同进程,音乐中下载任务和播放任务属于不同线程
- Python中的GIL是什么,它影响什么
全局解释器锁,python中独有的,尽管有多个核的CPU,但是只保证一个进程在同一个时刻只允许运行一个线程任务
因此实际上python中的多线程都是假的,其实就是单线程;虽然可以创建多个线程,但是只是可以线程切换的单线程而已