首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >并发篇-python非阻塞套接字-1

并发篇-python非阻塞套接字-1

作者头像
小团子
发布2019-07-18 10:56:45
6210
发布2019-07-18 10:56:45
举报
文章被收录于专栏:数据云团数据云团

非阻塞套接字到底带来了什么?

非阻塞套接字在accept或recv的时候不会发生阻塞,要么成功,

要么失败抛出BlockingIOError异常

使用非阻塞套接字实现并发

>并发是什么?

在一个时间段,完成某件事

整体思路

> 吃满 CPU!

> 宁可用 While True,也不要阻塞发呆!

> 只要资源没到,就先做其别的事!

> 将代码顺序重排,避开阻塞!

非阻塞套接字如何实现并发服务端?

配合try语句,将代码顺序重排,避开阻塞

# 第一层循环只负责生成对等连接套接字

>>>While True :

# 保留已经生成的对等连接套接字

>>>connection_list.append(conn)

# 把已经生成的对等连接套接字都处理一遍

>>>for connection in connection_list:

# 成功处理完一个对等连接套接字,就移出一个

>>>connection_list.remove(connection)

>普通套接字实现的服务端有什么缺陷吗?

有,一次只能服务一个客户端!

>这种缺陷是如何造成的?

accept阻塞:当没有套接字连接请求过来的时候会一直等待着

recv阻塞:当连接的这个客户端没有发数据过来的时候,也会一直等待着

非阻塞套接字——并发服务多个客户端

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对等连接
对等连接(Peering Connection,PC)是一种大带宽、高质量的云上资源互通服务,可以帮助您打通腾讯云上的资源通信链路。 对等连接具有多区域、多账户、多种网络异构互通等特点,轻松实现云上两地三中心、游戏同服等复杂网络场景;支持 VPC 网络与基础网络、黑石网络互通,满足您不同业务的部署需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档