python-并行&并发|同步&异步|异步阻塞&异步非阻塞&同步阻塞&同步非阻塞

申明:本文涉及的概念不是官方解释,是我的的语言总结,喷者勿进python

并行&并发概念web

(并行&并发)学习这两个概念首先明确这两个概念的区别,这两个概念的区别贯穿本文,两个是不一样的概念算法

并行:并行是解决了什么事(ing),一段时间或则同一时刻作了几件事编程

并发:并发是有多少事要解决(will be doing),一段时间或则同时时刻有多少事要作 缓存

注释:并行是解决并发的一种手段服务器

demo:网络

  并行:高速双向4车道,能够肩并肩同时行驶8辆车(解决了8辆车同时运行这件事),他们在本身的车道上互不影响  数据结构

  并发:火车站春运与平时对比,平时人少(并发量就比较小),春运人不少(并发量就很大),乘客要乘车,客运站要解决乘车的问题(有多少乘客乘车要解决,就是有多少问题须要解决)多线程

并行的实现方法:并发

  1:python 提供的标准库threading, multiprosessing

  2:第三方celery的异步任务

并发的解决方案:

  注释:解决高并发没有一种模板化套路就能解决的,全部的高并发解决都是结合实际业务多种方法的综合版

  1:队列(缓冲区) Queue:队列、LifoQueue:先进先出队列、PriorityQueue:优先级队列

    注释:队列自然的就造成了一个缓冲地带,就是缓冲区.队列也是程序中的生产者消费者模型

  2:争抢 谁先占用cpu谁先执行,其余的等待,多核CPU须要解决资源竞争的问题

    注释:解决资源竞争要使用锁机制

  3:预处理  将代码片的处理结果预先处理好,存放于某个位置,当并发的时候不用执行代码片而直接获取结果

    注释: 预处理也是程序中经常使用的缓存,web项目中动态页面静态化

  4: 并行编程(水平扩展) 程序的最终执行是由进程中的线程去执行的,每一个进程在没有受到计算机任务调度的状况下是独占一个cpu核的,从这个理解出发,并行解决高并发可使用多服务器,多进程,多线程来处理

    注释:这个概念也就涉及到部署中多机的、分布式的部署方法

  5: 提速(垂直扩展) 提高单个cpu性能,单台服务器替换成更多的cpu核数,更换固态硬盘,云服务就增长带宽

  6:消息中间件 究竟什么是程序,程序等于数据结构+算法,算法包括1:可接收的参数 2:可接受的时间范围内返回的接收到参数的处理结果,最终明白,程序就是处理请求和返回结果的,消息中间件中的消息指的就是请求,他干了什么是呢,就是在这个请求尚未到达程序入口(API)以前,先将消息进行一个缓冲.

    注释:python常见的消息中间件 RabbitMQ、ActiveMQ、RocketMQ、kafka

  7:就近原则 像BAT这样的大公司,服务器分布不少地区。像你在深圳打游戏你选择华北的服务器,确定比当地服务器丢包率高一个道理,就近原则能够缩短网络IO的时间

同步&异步概念

注释:同步&异步,强调的是结果,是否直接拿到结果没有绕弯

同步:调用一个接口,程序直接响应并返回结果(请求->响应的结果)

    注释:好比去商店购买烟,老板直接把你要的烟给了你,称为同步(买烟->拿到烟)

异步:调用一个接口,程序响应,可是没有直接给结果,而是给了你一个中间物(信号),而后你监听这个信号,或者叫你才能拿到最终的结果(请求->中间物->响应的结果)

    注释:好比去购买一杯一点点奶茶,商店并无直接将奶茶交付于你,而是给了你一个排队的单号,等作好后按照单号取奶茶(点一杯奶茶->小票单号->叫号/拿号取物->拿到奶茶)

异步阻塞&异步非阻塞&同步阻塞&同步非阻塞

注释:异步阻塞&异步非阻塞&同步阻塞&同步非阻塞,强调的仍是获取结果,及获取到结果有没有等待

结合同步异步的概念,这里只介绍阻塞

异步阻塞:表示你在拿到这个中间物后你就一直在这里等着,没有作其余的事表示阻塞

    注释:你去购买奶茶,奶茶店给了你一张小票(你经过这个小票能够取到奶茶),你什么事都不作了,就在这里等着直到拿到奶茶,就是异步阻塞

异步非阻塞:表示你在拿到这个中间物后,没有一直等着,而是继续作了其余事

    注释:你去购买奶茶,奶茶店给了你一张小票(你经过这个小票能够取到奶茶),你就去作了其余事(反正小票能够取到奶茶,奶茶店把奶茶给你作好后给你放在冰箱存着,等你来取),你去了一趟超市买了一盒烟后回来取的奶茶

 

同步阻塞:你去买一个烟,老板说烟在仓库他去给你拿了,你就一直在这里等着称为同步阻塞。

同步非阻塞:你取买一盒烟,老板说烟在仓库他去给你拿了,你没有在这里一直等着,而是去旁边水果店买了一些水果,买完水果回来老板已经给你准备好了烟 ,这是同步非阻塞

相关文章
相关标签/搜索