并发/并行;同步/异步;阻塞/非阻塞
并发/并行
# 并行
同一时刻,执行多个任务的能力,并行必须是多cpu支持
# 并发
同一时间段内,执行多个任务的能力,所有操作系统都支持并发,单核cpu也可以并发
# 串行
多个任务依次进行,每个任务必须等待上一个任务完成才能开始
#扯出去
1.python开启多线程,即便有多核CPU也只能并发,无法进行。原因是有GIL锁
2.python开启多进程+多核CPU才能并行
3.io密集型使用多线程(大部分都是io不消耗CPU,开多进程没有用),计算密集型使用多进程(提高CPU利用率)
同步/异步
# 程序调用的角度
# 同步
同步是一件事一件事的做;只有执行完前一个任务,才会执行下一个任务。同步意味着有序
# 异步
当一个任务开始执行了,你无需等待该任务执行完成,就可以切换到另外一个任务上。异步意味着无序
# 我们用过的异步
-借助与其它框架:scrapy、celery
-fastapi:异步web框架
-sanic:异步web框架
阻塞/非阻塞
# 程序执行的角度
# 阻塞
程序在等待某个操作完成期间,自身无法继续干别的事情,则称该程序在该操作上是阻塞的
# 非阻塞
程序在等待某操作过程中,自身不被阻塞,可以继续运行干别的事情,则称该程序在该操作上是非阻塞的
# 同步阻塞
# 异步阻塞
# 同步非阻塞
# 异步非阻塞
参考链接:点击这里
标签:异步,同步,并行,阻塞,并发,任务 From: https://www.cnblogs.com/10086upup/p/17623212.html