UDP协议服务端模板代码

import socketserver = socket.socket(type=socket.SOCK_DGRAM)    # 创建socket对象,括号内选择类型为UDPserver.bind(('127.0.0.1', 8080))                  # 输入目标ip地址msg, address = server.recvfrom(1024)              # 用于接收客户端的数据print('信息>>:%s' % msg.decode('utf-8'))          # 将接收的数据打印
print('地址>>:%s' % address)                      # UDP协议传信息需要添加地址server.sendto('这里是服务端'.encode('utf-8'))      # 服务端也可以传出数据给客户端

UDP协议服务端模板代码

import socketclient = socket.socket(type=socket.SOCK_DGRAM)                # 创建socket对象,类型为UDPserver_address = ('127.0.0.1', 8080)                          # 输入服务端地址client.sendto('这里是客户端'.encode('utf-8'), server_address)  # 传递消息给服务端,需要添加服务端的地址msg, address = client.recvfrom(1024)                          # 接收服务端的数据print('消息>>:%s' % msg.decode('utf-8'))                      # 打印服务端的数据
print('地址>>:%s' % address)

UDP协议的特点

1.服务端与客户端不用建立链接,即使客户端异常退出也不影响服务端发送数据

2.UDP不会出现黏包现象,因为UDP多用于短数据发送

多道技术

多道技术是一种节约程序占cpu的总时间,提升运行效率的一种程序的运行方式


多道与单道相比

单道技术

所有程序按顺序运行,一个程序结束之后再运行另外一个,耗时长

多道技术

当一个程序在发送数据时,另一个程序同时进行接收数据,耗时短

多道技术的具体方法

切换+保存状态

1.CPU在两种下会切换(去执行其他程序)
        1.程序自身进入IO操作
                输入输出操作
                获取用户输入
                time.sleep()
                读取文件
                保存文件
        2.程序长时间占用CPU
    2.保存状态
        每次切换之前要记录下当前执行的状态 之后切回来基于当前状态继续执行

应用程序的并行与并发

并行

指所有程序同一时间同时进行

(同时进行需要有多个CPU,否则无法实现)

并发

        指不同程序交替运行,看上去像是同一时间进行

(可以在单个CPU上实现,数据处理效率极高)

任务的同步与异步

同步

指提交任务之后等待任务结果,等待期间不做任何事直到得到结果

(在银行排队,期间只进行排队任务)

异步

指提交任务之后直接去做其他事情,任务结果自动提醒

(在银行排队,取号后做其他事情等待被叫号)

应用程序的阻塞与非阻塞

阻塞

        阻塞态

指因为某个事件无法执行或无法得到结果,占用CPU运行时间

非阻塞

就绪态

指应用程序已经分配到除了CPU以外的运行资源,只要得到CPU就可以进行

同步/异步和阻塞/非阻塞

同步阻塞

效率最低的模式,一直等待进程的消息,期间什么都不做

异步阻塞

                效率偏低的模式,在等待消息时只能在规定范围做事

同步非阻塞

                效率偏低的模式,等待进程消息期间准备好了其他运行资源,但在消息响应前只能等待

异步非阻塞

                效率最高的模式,一边等待进程消息一边处理其他事情,保证运行效率

网络编程 多道技术与同步/异步和阻塞/非阻塞相关推荐

  1. Java网络编程------IO模型的同步/异步/阻塞/非阻塞(1)

    IO模型的同步/异步/阻塞/非阻塞 一.同步/异步/阻塞/非阻塞 1.同步和异步 2.阻塞和非阻塞 3.同步.异步和阻塞.非阻塞组合 二.IO 1.I/O 2.阻塞IO和非阻塞IO 3.同步IO和同步 ...

  2. android xml java混合编程_Java学习中注解与多线程,网络编程与XML技术

    本部分内容主要有集合框架及泛型,实用类,输入和输出处理,注解与多线程,网络编程与XML技术.初次学习这部分会感觉很难,主要是概念难于理解,最好是多看看例子,多练习.下面是个人的总结 拉勾IT课小编为大 ...

  3. 面试必会系列 - 5.1 网络BIO、NIO、epoll,同步/异步模型、阻塞/非阻塞模型,你能分清吗?

    本文已收录至 Github(MD-Notes),若博客中图片模糊或打不开,可以来我的 Github 仓库,包含了完整图文:https://github.com/HanquanHq/MD-Notes,涵 ...

  4. python 进程池阻塞和非阻塞_python 之 并发编程(进程池与线程池、同步异步阻塞非阻塞、线程queue)...

    9.11 进程池与线程池 池子使用来限制并发的任务数目,限制我们的计算机在一个自己可承受的范围内去并发地执行任务 池子内什么时候装进程:并发的任务属于计算密集型池子内什么时候装线程:并发的任务属于IO ...

  5. 并发编程:并发和并行、多进程、同步异步,阻塞非阻塞、进程同步(进程锁)、线程、GIL全局解释器锁、锁-信号量-Event事件、协程

    文章目录 一. 操作系统的发展史 二. 进程基础 三. 并发和并行 四. 如何开启多进程 五. 进程调度算法(了解) 六. 同步异步,阻塞非阻塞(了解) 1. 状态介绍 2.同步和异步.阻塞和非阻塞 ...

  6. Python|线程和进程|阻塞|非阻塞|同步|异步|生成器和协程|资源竞争|进程间通信|aiohttp库|daemon属性值详解|语言基础50课:学习(11)

    文章目录 系列目录 原项目地址 第34课:Python中的并发编程-1 线程和进程 多线程编程 使用 Thread 类创建线程对象 继承 Thread 类自定义线程 使用线程池 守护线程 资源竞争 G ...

  7. 同步/异步,阻塞/非阻塞概念深度解析

    ‍‍ 原文:https://blog.csdn.net/lengxiao1993/article/78154467 更新:极客重生 网络IO作为网络编程核心基础知识,是所以程序员都需要理解掌握的,最近 ...

  8. 进程线程、同步异步、阻塞非阻塞、并发并行、多线程

    一: 进程和线程 1: 进程(Process) 是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程.线 ...

  9. 15分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行,太实用了!

    作者:Martin cnblogs.com/mhq-martin/p/9035640.html 基本概念 1 进程和线程 进程(Process): 是Windows系统中的一个基本概念,它包含着一个运 ...

最新文章

  1. 数字经济时代,什么是关键资源?(算力篇)
  2. IntelliJ IDEA 2020.1 EAP2 发布:新增禅模式和 LightEdit 模式
  3. 3.10 候选区域-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  4. 再来一波PHP程序员必看书籍
  5. 阿里数据库内核月报:2016年03月
  6. 配置静态路由下一跳为本地出战接口和IP地址的区别
  7. com.sun.istack.SAXException2: 在对象图中检测到循环。这将产生无限深的 XML
  8. python多线程同步与互斥_python多线程编程(3): 使用互斥锁同步线程
  9. Leedcode10-linked-list-cycle-ii
  10. 2019届[月考01-03]高三理科数学试题参考答案
  11. Linux进程最大socket数,Linux下高并发socket最大连接数所受的各种限制(详解)
  12. 如何在你朋友面前伪装黑客6(程序代码)
  13. CAE软件有哪些?流体力学方面的软件有哪些?ANSYS是CAE软件吗?
  14. Overlay 网络 VXLAN 技术解析
  15. linux c 读取.bin文件
  16. Struts2远程命令执行漏洞
  17. 基于上下文的业务流建模法(三)
  18. 软件测试工程师简历项目经验怎么写?--1000套软件测试工程师简历
  19. 工业工厂三维可视化设备3D建模展示
  20. css div颜色渐变效果

热门文章

  1. 明日直播| NLPCC workshop百度架构师带你快速上手飞桨NLP
  2. 拒绝访问硬盘拒绝访问的找回方法
  3. 写一段excel VBA自动分类的代码
  4. 关于Win10创意者更新之后蓝屏的修复办法
  5. python 拷贝文件创建目录失败_解决python os.mkdir创建目录失败的问题
  6. mybatis一个怪异的问题: Invalid bound statement not found 作者及来源: babyblue - 博客园 收藏到→_→: 摘要: mybatis一个怪异
  7. 家庭智能控制系统开发
  8. MSP430 GPIO概述 第六章
  9. kivy制作安卓APP--简单音乐播放器
  10. 小白如何装重装操作系统(使用PE辅助)