工作中经常涉及到加速程序的运行,除了代码逻辑的优化,算法的优化之外,还经常使用的一招就是并发编程。至于python的并型编程这一块。说到并行编程,我们不得不谈线程和进程这两个概念:
- 进程:对于操作系统来说,一个任务就是一个进程(Process),熟悉linux的朋友敲命令ps -aux 就可以看到本机正在启动的任务——进程 。
- 线程:在一个进程内部(一个任务),要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”称为线程(Thread)。
这里要注意的是每个进程至少要干一个任务,每个进程至少有一个线程。
正常的程序都是顺序执行,你完成干完一件事后再接着干下一件事。这样就会出现一个问题,无法同时干多件事。而并行编程就是希望程序能够同时干多件事情,起到程序加速运行的效果。
并行编程的三种模式
- 1.多进程: 开启多个进程,每个进程中都有一个线程,并行去执行多个任务。
- 2.多线程 :只开启一个进程,在进程中采取多线程编程模式,真正的多线程是将任务分发到不同的CPU,充分利用多核CPU。
- 3.多进程加多线程:这个就是上面