350-多任务

引入前面的问题,TCP服务器,一个服务器只能处理一个客户端的请求,如果想要同时处理多个客户端的请求,就需要使用多进程。

python中的多任务编程方法:

多任务的概念

多任务是指一个程序中包含多个子任务,这些子任务可以同时执行,也可以交替执行。

多任务的优势:大大提高程序执行效率

多任务的表现形式:

并发

任务数大于cpu核心数

在一段时间内交替去执行多个任务

并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个CPU上运行,但任一个时刻点上只有一个程序在CPU上运行。

单核cpu是并发执行多任务,多核cpu是并行执行多任务

并行

cpu核心数大于等于任务数

在同一时刻点上多个任务同时执行
cpu的超线程本质也是并发执行,不能真正算两个核心

对于多核cpu处理多任务,操作系统会给cpu的每个内核安排一个执行的任务,多个内核是真正的一起同时执行多个任务。这里需要注意多核cpu是并行的执行多任务,始终有多个任务一起执行。



学完后面的351-进程352-线程后的总结

进程和线程的对比

多进程实现多任务,cpu核心不够就是并发,cpu核心足够就是并行

多线程一定是并发

线程是cpu执行或者是程序执行的最小单元

关系对比(包含关系)

区别对比

优缺点对比


python中的多线程相比c++和java来说相当简单,因为当初python在设计的时候就将这些功能封装好了,但是例如java要实现多线程,需要手动创建线程对象,而python则不需要。