0、多线程和多进程的简述
一、多线程 Threading
多线程 Threading
是一种让程序拥有分身效果
. 能同时处理多件事情. 一般的程序只能从上到下一行行执行代码, 不过多线程 (Threading)
就能打破这种限制. 让你的程序鲜活起来.
二、多进程 Multiprocessing
我们在多线程 (Threading) 里提到过, 它是有劣势的, GIL 让它没能更有效率的处理一些分摊的任务. 而现在的电脑大部分配备了多核处理器, 多进程 Multiprocessing 能让电脑更有效率的分配任务给每一个处理器, 这种做法解决了多线程的弊端. 也能很好的提升效率.
1、单核CPU是怎么执行多任务的呢?
操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01秒,再切换到任务3,执行0.01秒……这样反复执行下去。表面上看,每个任务都是交替执行的,但是,由于CPU的执行速度实在是太快了,我们感觉就像所有任务都在同时执行一样。
2、真正的并行执行只能在多核CPU上实现
真正的并行执行多任务只能在多核CPU上实现,但是,由于任务数量远远多于CPU的核心数量,所以,操作系统也会自动把很多任务轮流调度到每个核心上执行。