python学习笔记之---多进程
首先,思考多进程、多线程、协程的区别? 其次,什么时候该用哪种模式? 进程:一个程序在计算机里面的一次运行。 线程:进程中调度执行的最小单位。 多进程:利用多核cpu,硬件的计算能力变强了。 程序的计算要求比较高的时候。 多线程:一核cpu,硬件的计算能力变弱了。 不是强调计算能力,而是强调多io操作的时候。(什么是IO?输入,输出:从键盘接收一个东西叫输入,打印一个东西叫输出) 多个线程之间做切换,比协程的切换效率要低一些。 协程: 本质是单线程,比多线程的效率高 单线程来实现不同任务的切换,是任务本身来实现的。 多io操作。 多进程编程会比多线程编程麻烦:因为多进程之间是无法共享一个变量的,多线程之间可以共享变量(同一个进程里)的使用,比较麻烦。 什么时候该用哪种模式呢? 计算密集型的任务时使用多进程,多核cpu计算效率更高 做多io操作的时候用线程或者协程都可以,但是对于多io来说协程的效率比多线程更高一些,不过同时协程的复杂度也比多线程更高一些 区别是什么? 线程必须运行在进程里面,一个进程至少有一个线程。 进程是操作系统分配资源的最小单位。 一个进程中的不同线程,会共用一个进程中的资源。 并发和并行什么区别: 并发:一起执行,并不一定是在某一时刻就同时执行 并行:在同一时刻执行。 多进程、多线程、协程都是用来提升并发性的。 同步:注册和登录,必须按同步是按顺序执行