1、关于协程:什么是协程

2、python协程如何使用:asyncio --- 异步 I/O

3、关于python并发大量协程时报错ValueError: too many file descriptors in select()

假如你的并发达到2000个,程序会报错:ValueError: too many file descriptors in select()。报错的原因字面上看是 Python 调取的 select 对打开的文件有最大数量的限制,这个其实是操作系统的限制,linux打开文件的最大数默认是1024,windows默认是509,超过了这个值,程序就开始报错。这里我们有三种方法解决这个问题:

  1. 限制并发数量。(一次不要塞那么多任务,或者限制最大并发数量)
  2. 使用回调的方式
  3. 修改操作系统打开文件数的最大限制,在系统里有个配置文件可以修改默认值,具体步骤不再说明了。

不修改系统默认配置的话,个人推荐限制并发数的方法,设置并发数为500,处理速度更快。

#coding:utf-8
import time,asyncio,aiohttpurl = 'https://www.baidu.com/'
async def hello(url,semaphore):async with semaphore:async with aiohttp.ClientSession() as session:async with session.get(url) as response:return await response.read()async def run():semaphore = asyncio.Semaphore(500) # 限制并发量为500to_get = [hello(url.format(),semaphore) for _ in range(1000)] #总共1000任务await asyncio.wait(to_get)if __name__ == '__main__':
#    now=lambda :time.time()loop = asyncio.get_event_loop()loop.run_until_complete(run())loop.close()

python -asyncio相关推荐

  1. python asyncio 使用方法

    python asyncio import asyncio async def work(i):print("运行work{}".format(i))return "wo ...

  2. python asyncio和celery对比_如何将Celery与asyncio结合? - python

    如何创建使芹菜任务看起来像asyncio.Task的包装器?还是有更好的方法将Celery与asyncio集成? @ asksol,Celery的创建者said this:: 使用Celery作为异步 ...

  3. python asyncio future_Python asyncio.isfuture方法代码示例

    本文整理汇总了Python中asyncio.isfuture方法的典型用法代码示例.如果您正苦于以下问题:Python asyncio.isfuture方法的具体用法?Python asyncio.i ...

  4. Python Asyncio 所有异步协程库用法详解

    title: Asyncio并发编程 copyright: true top: 0 date: 2019-04-03 14:09:24 tags: Asyncio categories: Python ...

  5. python asyncio future_Python asyncio.ensure_future方法代碼示例

    本文整理匯總了Python中asyncio.ensure_future方法的典型用法代碼示例.如果您正苦於以下問題:Python asyncio.ensure_future方法的具體用法?Python ...

  6. python asyncio教程_python中使用asyncio实现异步IO实例分析

    1.说明 Python实现异步IO非常简单,asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持. asyncio的编程模型就是一个消息循环.我们从asyncio模块中直接 ...

  7. python asyncio tcp server_Python 3.4 中新的 asyncio : Servers、Protocols 和 Transports

    使用 Clients and Servers 在上面的例子中,telnet是一个客户端.asyncio模块提供了一个协程方便你很容易的使用stream reader 和 writer来编写服务端和客户 ...

  8. python asyncio与aiohttp_python链家网异步IO爬虫,使用asyncio、aiohttp和aiomysql

    python链家网异步IO爬虫,使用asyncio.aiohttp和aiomysql 平均1秒可以爬取30个详情页信息 可以使用asyncio.Semaphore来控制并发数,达到限速的效果 # -* ...

  9. python asyncio回调函数_最近用 Python 的 asyncio,有好多不懂。。

    15 2017-03-14 19:35:58 +08:00   16 说下我对这 python 这几种 web 模型的理解吧: 首先是 http server + wsgi server(contai ...

  10. python asyncio文件操作_Python asyncio文档阅读摘要

    文档地址:https://docs.python.org/3/library/asyncio.html 文档第一句话说得很明白,asyncio是单线程并发,这种event loop架构是很多新型异步并 ...

最新文章

  1. TX2---远程操作
  2. string转map集合_[系列文章] Go - Map 集合
  3. KB2533623 下载
  4. SpringBoot高级-消息-RabbitTemplate发送接受消息序列化机制
  5. 配置mysql环境变量
  6. android fileinputstream 获取file,Android FileInputStream没有读取文件
  7. 极简短网址-一套简约的短网址程序
  8. asc和desc全称_MySQL数据排序asc、desc
  9. esxi 环境 西数硬盘测试软件,手把手教你测试固态硬盘!硬盘测试软件大汇总
  10. 学习分享:RNN(持续更新)
  11. 钉钉微应用PC开发版调试
  12. 《计算传播学导论》读书笔记——第二章文本分析简介
  13. 在企业中应用的区块链应能够扩容以满足业务条线的需求
  14. 哥德尔不完全性定理 关系 谓词和代入——哥德尔读后之二十
  15. Java 类加载顺序与成员变量初始化
  16. 重学计算机网络(二) - 曾记否,查IP地址
  17. 小草说----大数据和机器学习为什么这样火
  18. 《VTL语法参考指南》中文版[转]
  19. mysql gman do_Mysql 与Redis的同步实践
  20. 普林斯顿大学计算机科学排名,普林斯顿大学计算机科学与信息系统世界排名2020年最新排名第11(QS世界排名)...

热门文章

  1. 程序人生之回顾大学前两年----第二篇
  2. 百度Google搜索框中,你不知道的变化
  3. 雷死人不偿命-----六年级小学生的字条
  4. 生成下拉框的几种方法总结——数据来源:数据库
  5. 自动化设计模式Page Object
  6. bzoj2754: [SCOI2012]喵星球上的点名
  7. [自学]Docker system 命令 查看docker镜像磁盘占用情况 Docker volume 相关
  8. BUPT 2012复试机考 4T
  9. 纯原生仿ES6的Object.assign,实现深度合并对象
  10. ibatis解决sql注入问题