多道技术、同步异步和阻塞非阻塞

前期需要储备的知识点

并发

看起来同时运行的就可以称之为并发,其实内部是做了0.1秒A,做了0.1秒B,交替进行运作,看起来像是一起运作的。

并行

真正意义上的同时执行

补充

1.并行肯定算是并发
2.单核的计算机肯定不能实现并行,但是可以实现并发!!
3.我们这里的单核是假设就是一个核,干活的就一个人,不考虑cpu里面的内核

1. 多道技术

1.1 什么是多道技术

简单来说,就是单核实现并发效果的技术

图解:
image

1.2 为什么要有多道技术

多道技术可以节省多个程序运行的总耗时(时间上复用),也可以让多个程序共用一套计算机硬件(空间上复用)

2. 同步与异步

同步与异步描述的是任务的提交方式

2.1 同步

同步指的是,任务提交之后,原地等待任务的返回结果,等待的过程中不做任何事(干等着)

2.2 异步

异步指的是,任务提交之后,不原地等待任务的返回结果,等待的过程中去做其他任何事。

问题是提交的结果如何获取?任务的返回结果会有一个异步回调机制自动处理!

3. 阻塞与非阻塞

阻塞与非阻塞描述的是程序的运行状态

阻塞:阻塞态

非阻塞:就绪和运行态

理想状态是,我们应该让我们的程序永远处于就绪和运行状态之间切换。

上述概念的组合:最高效的一种组合就是异步非阻塞!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:多道技术、同步异步和阻塞非阻塞 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • django中APIView里的dispatch和as_view方法分析

    位置: from rest_framework.views import APIView 继承APIView类视图形式的路由: path(‘booksapiview/’, views.BooksAPIView.as_view()), #在这个地方应该写个函数内存地址 继承APIView类的视图函数: from rest_framework.views imp…

    Python开发 2023年4月2日
    00
  • 文章的点赞点踩制作

    文章的添加 博客园打开需要拷贝的文章,右键检查–》选择cnblogs_post_body这一个div,然后复制outer HTML到admin后台文章表里面 最后需要在文章详情页的文章内容那一行添加一个|safe 点赞点踩制作 前端样式: 不会写,直接拷贝博客园的点赞点踩html和css样式 {# 点赞点踩样式开始:复制博客园的点赞点踩样式,拷贝其对应的o…

    2023年4月2日
    00
  • 进程

    1 什么是进程 进程是系统进行资源分配和调度的基本单位,进程表示程序正在执行的过程,是‘活的’,而程序就是一推躺在硬盘上的代码,是‘死的’。 2 进程的调度 1.先来先服务调度算法:对长作业有利,对短作业无利2.短作业优先调度算法:对短作业有利,对长作业无利3.时间片轮转法+多级反馈队列该方法是指,将时间片切成n份,每一份表示一个时间片,这些时间片有一个优先…

    2023年4月2日
    00
  • 实时展示用户上传的头像

    实时展示用户上传的头像 总体思路 “”” 1.首先需要给对应的上传头像input框绑定一个文本域变化事件 (当检测到用户对该文件框上传了头像就会触发一系列操作) 2.再生成一个文件阅读器对象 3.再获取用户上传的文件头像 4.把用户上传的文件头像交给文件阅读器对象FileReader读取 5.利用文件阅读器把读取的文件头像结果展示到前端页面 (修改img的s…

    Python开发 2023年4月2日
    00
  • flask操作数据库

    flask操作数据库 准备工作 安装flask-script(版本过高可能会报错) pip install flask-script==2.0.3 使用flask-script里的Manager类实例化来管理项目的启动等 from apps import create_app from flask_script import Manager app = cr…

    2023年4月2日
    00
  • 序列化组件

    序列化组件的三大功能 序列化,序列化器会把模型对象转换成字典,经过response以后变成json字符串 反序列化,把客户端发送过来的数据,经过request以后变成字典,序列化器可以把字典转成模型 反序列化时同时会完成数据校验功能 序列化器Serializer使用方法 查询单个数据语法: 1.在setting.py中的app配置里注册一下drf 2.在dj…

    2023年4月2日
    00
  • 基本数据类型之列表

    1.列表的定义 1.采用变量名=[]的方式定义2.采用变量名=list()的方式定义 2.列表的作用 列表是用来存多个数据,并且这些数据是需要按位置存放的,后面我们可以通过索引取出列表里的数据。 3.类型转换 但凡可以被for循环遍历的类型(可迭代对象)都可以当做参数传给list()转成列表 4.列表的内置方法 # 1.按照索引取改值(正向取改+反向取改) …

    Python开发 2023年4月2日
    00
  • form表单内容序列化的两种方法

    form表单内容序列化 form表单自带两种方法serialize()方法和serializeArray()方法 1.serialize()方法 描述:序列化表单内容为字符串(不包括文件),用于Ajax请求。 格式:var data = $(‘#form’).serialize(); 2.serializeArray()方法 描述:序列化表单元素(类似’.s…

    2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部