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

网站建设模式基金网站制作

网站建设模式,基金网站制作,优质的广州做网站,网站seo可以做吗在一篇文章 理解Python异步编程的基本原理 这篇文章中#xff0c;我们讲到#xff0c;如果在异步代码里面又包含了一段非常耗时的同步代码#xff0c;异步代码就会被卡住。那么有没有办法让同步代码与异步代码看起来也是同时运行的呢?方法就是使用事件循环的.run_in_execut…在一篇文章 理解Python异步编程的基本原理 这篇文章中我们讲到如果在异步代码里面又包含了一段非常耗时的同步代码异步代码就会被卡住。那么有没有办法让同步代码与异步代码看起来也是同时运行的呢?方法就是使用事件循环的.run_in_executor()方法。我们来看一下 Python 官方文档[1]中的说法那么怎么使用呢?还是以非常耗时的递归方式计算斐波那契数列的这个函数为例def sync_calc_fib(n):if n in [1, 2]:return1return sync_calc_fib(n - 1) sync_calc_fib(n - 2)async def calc_fib(n):result sync_calc_fib(n)print(f第 {n} 项计算完成结果是{result})return result我们现在需要用 aiohttp 访问一个延迟5秒的网页同时计算斐波那契数列第36项。首先我们看看单独计算第36项需要5秒钟我们再来看看如果直接把这计算斐波那契数列和请求网站的两个异步任务放在一起“并行”实际时间是两个任务的时间叠加具体原因我在上一篇文章里面已经做了说明。现在我想让两个任务“同时运行”于是就可以这样修改代码import aiohttpimport asyncioimport timefrom concurrent.futures import ThreadPoolExecutorasync def request(sleep_time):async with aiohttp.ClientSession() as client:resp await client.get(fhttp://127.0.0.1:8000/sleep/{sleep_time})resp_json await resp.json()print(resp_json)def sync_calc_fib(n):if n in [1, 2]:return 1return sync_calc_fib(n - 1) sync_calc_fib(n - 2)def calc_fib(n):result sync_calc_fib(n)print(f第 {n} 项计算完成结果是{result})return resultasync def main():start time.perf_counter()loop asyncio.get_event_loop()with ThreadPoolExecutor(max_workers4) as executor:tasks_list [loop.run_in_executor(executor, calc_fib, 36),asyncio.create_task(request(5))]await asyncio.gather(*tasks_list)end time.perf_counter()print(f总计耗时{end - start})asyncio.run(main())运行效果如下图所示在5秒钟的时间就把计算斐波那契数列和请求5秒延迟的网站都做完了。实现这样的转变关键的代码就是loop.run_in_executor(executor, calc_fib, 36)其中的 loop就是主线程的事件循环(event loop)它是用来调度同一个线程里面的多个协程。executor是我们使用ThreadPoolExecutor(max_workers4)创建的一个有4个线程的线程池calc_fib是一个耗时的同步函数36是传入calc_fib的参数。loop.run_in_executor(executor, calc_fib, 36)的意思是说把calc_fib函数放到线程池里面去运行给线程池增加一个回调函数这个回调函数会在运行结束后的下一次事件循环把结果保存下来。请注意上图中红色箭头对应的calc_fib这是一个同步函数请与上一篇文章中的异步函数区分开。run_in_executor的第二个参数需要是一个同步函数的函数名。在上面的例子中我们创建的是有4个线程的线程池。所以这个线程池最多允许4个阻塞式的同步函数“并行”。总结到此这篇关于在Python 的线程中运行协程的方法的文章就介绍到这了,更多相关python线程中运行协程内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们本文标题: 在Python 的线程中运行协程的方法本文地址: http://www.cppcns.com/jiaoben/python/301339.html
http://www.zqtcl.cn/news/915095/

相关文章:

  • 手机移动端网站是什么上海网站设计服务商
  • 多语言网站建设推广孝感门户网
  • 外贸soho 网站建设旅游电子商务网站建设调查问卷
  • 北京专业制作网站seo优化技术教程
  • 网站建设最低多少钱珠海在线网站制作公司
  • 网站建设完成之后要索取哪些医疗网站建设服务
  • 长沙招聘网站有哪些深圳seo论坛
  • 网站如何做网络推广山西住房建设厅官方网站
  • 优化排名推广技术网站平面设计创意
  • 山西网站建设哪家有tv域名的网站
  • 个人博客网站怎么赚钱公司招聘一个网站建设来做推广
  • 功能型网站有哪些中国门户网站有哪些
  • 网站制作教程步骤软件公司怎么赚钱
  • 看世界杯网址网站更新seo
  • 深圳网站做的好的公司商洛做网站电话
  • 环保部网站官网建设项目审批做网站推广赚钱吗
  • 北仑建设局网站东莞市seo网络推广价格
  • 大专学历怎么自考优化建站
  • 网站上的图片怎么替换中国电力建设集团网站
  • 开发手机网站步骤手机网站前端开发布局技巧
  • 文山文山市网站建设网站建设管理教程视频
  • 深圳建筑业协会官网seo短视频新地址在哪里
  • 学院宣传网站制作大型网站团队人数
  • 新品发布会ppt参考友山建站优化
  • 做网站云服务器装系统厦门网站建设哪家强
  • 网站建设顶呱呱东莞建设信息网官网
  • 化妆品网站下载企业宣传片报价明细
  • php建设网站怎么用网站建设忽悠
  • 网站软件app免费注册账号qq
  • 清河网站建设公司西安开发网站的公司