栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

UDP协议服务端模板代码
import socket

server = socket.socket(type=socket.SOCK_DGRAM)    # 创建socket对象,括号内选择类型为UDP

server.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 socket

client = socket.socket(type=socket.SOCK_DGRAM)                # 创建socket对象,类型为UDP

server_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就可以进行

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

同步阻塞

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

异步阻塞

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

同步非阻塞

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

异步非阻塞

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

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1037807.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号