并发并行;同步异步;阻塞非阻塞

并发/并行;同步/异步;阻塞/非阻塞

并发/并行

# 并行
同一时刻,执行多个任务的能力,并行必须是多cpu支持

# 并发
同一时间段内,执行多个任务的能力,所有操作系统都支持并发,单核cpu也可以并发

# 串行
多个任务依次进行,每个任务必须等待上一个任务完成才能开始

#扯出去
1.python开启多线程,即便有多核CPU也只能并发,无法进行。原因是有GIL锁
2.python开启多进程+多核CPU才能并行
3.io密集型使用多线程(大部分都是io不消耗CPU,开多进程没有用),计算密集型使用多进程(提高CPU利用率)

同步/异步

# 程序调用的角度

# 同步
同步是一件事一件事的做;只有执行完前一个任务,才会执行下一个任务。同步意味着有序

# 异步
当一个任务开始执行了,你无需等待该任务执行完成,就可以切换到另外一个任务上。异步意味着无序

# 我们用过的异步
-借助与其它框架:scrapy、celery
-fastapi:异步web框架
-sanic:异步web框架

阻塞/非阻塞

# 程序执行的角度

# 阻塞
程序在等待某个操作完成期间,自身无法继续干别的事情,则称该程序在该操作上是阻塞的

# 非阻塞
程序在等待某操作过程中,自身不被阻塞,可以继续运行干别的事情,则称该程序在该操作上是非阻塞的


# 同步阻塞
# 异步阻塞
# 同步非阻塞
# 异步非阻塞

参考链接:点击这里

posted @ 2023-08-11 15:58  雀雀飞了  阅读(16)  评论(0编辑  收藏  举报