当前位置: 首页 > news >正文

网站模板的制作怎么做的手机百度如何发布广告

网站模板的制作怎么做的,手机百度如何发布广告,政府门户网站建设自查报告,关于介绍网页设计的演讲稿现在asyncio在Python中的使用越来越广泛了,但是很多人对于协程(corotine)的一些使用方式还不太熟悉。在这篇文章中,我将会介绍如何识别协程是否被block了,并以常用的HTTP网络库requests/httpx为例来说明如何避免协程被block的问题。 为什么协程会被block 在Python中,可…

现在asyncio在Python中的使用越来越广泛了,但是很多人对于协程(corotine)的一些使用方式还不太熟悉。在这篇文章中,我将会介绍如何识别协程是否被block了,并以常用的HTTP网络库requests/httpx为例来说明如何避免协程被block的问题。

为什么协程会被block

在Python中,可以通过多协程的方式来实现并发,但是如果在协程中使用了阻塞的IO操作,那么这个协程就会被block,从而影响整个事件循环的执行。在这种情况下,虽然已经启动了很多协程,但是其实所有的协程都被卡主没有继续执行,也就不能发挥其并发的优势了。

一般来说,进行HTTP请求时,在Python中和asyncio配合的更多是httpx而非经典的requests库。这些就是因为,在默认情况下,httpx的AsyncClient是不会block住协程的,而requests库则是会block住协程。如果在多协程的情况下直接使用requests库,其实就没有发挥出任何协程的并发优势。

如何识别协程是否被block

我们可以通过一个独立的协程任务来检查自己是否block中,从而发现当前的事件循环中是否有协程被block。这个任务的视线方式如下:

import time
import asyncioTHRESHOLD = 0.01
FINISH = Falseasync def monitor_block():global FINISHmax_diff = 0while not FINISH:t = time.time() await asyncio.sleep(1.0)diff = time.time() - t - 1.0if diff > max_diff:max_diff = diffif diff > THRESHOLD:print(f'block found, diff {diff}s')print(f'{max_diff=}')

这个任务会每秒检查一次当前的时间是否和预期的时间相差太大,也就是asyncio.sleep函数的执行是否收到的影响,我们设定一个阈值THRESHOLD,如果实际的sleep的时间超过阈值,我们就认为当前的协程被block了。

下面实际比较一下requests和httpx的区别:

http://www.dt0577.cn/news/39177.html

相关文章:

  • 视频网站怎么做的关键词云图
  • 广州番禺网站制作推广农产品网络营销推广方案
  • 网络营销课程总结1500字网络推广优化平台
  • 长春网站建设索q479185700大庆黄页查询电话
  • 哪个网站做logo赚钱百度服务
  • 用net语言做网站平台好不好创意营销新点子
  • cms网站建设实训报告域名注册官网免费
  • flash网站怎么做2022年关键词排名
  • 找做网站的上什么app合肥网络推广有限公司
  • 长春制作门户网站的公司阿拉善盟seo
  • 在线表单 wordpress深圳百度关键字优化
  • 一个虚拟空间可以做两个网站吗网站设计与制作毕业论文范文
  • 做校园文化的网站百度知道app
  • 怎么做属于自己的免费网站网络培训平台
  • 网站版本功能列表怎么做app推广代理
  • 做网站建设需要做哪些工作怎么自己创建网页
  • 专业做室内设计的网站有哪些seo推广软件排行榜前十名
  • 莱西做网站seo顾问服务 品达优化
  • 网站制作 呼和浩特谷歌排名网站优化
  • 2012服务器如何做网站2022拉新推广平台
  • 博兴网站建设百度网址大全官网旧版
  • 淘宝网站c 设计怎么做的2021年重大新闻事件
  • 在线做logo的网站百度seo排名优化公司哪家强
  • 重庆疫情最新情况最新消息seo优化对网店的推广的作用为
  • 找谁做公司网站搜索引擎国外
  • wordpress页面布局插件seo免费诊断
  • 网站管理系统制作网络营销做得好的公司
  • 外贸营销文案网页优化方案
  • 做会员卡的网站在线制作b2b网站有哪些
  • 建网站 铸品牌 做推广中国网络营销公司排名