python -asyncio
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,超过了这个值,程序就开始报错。这里我们有三种方法解决这个问题:
- 限制并发数量。(一次不要塞那么多任务,或者限制最大并发数量)
- 使用回调的方式。
- 修改操作系统打开文件数的最大限制,在系统里有个配置文件可以修改默认值,具体步骤不再说明了。
不修改系统默认配置的话,个人推荐限制并发数的方法,设置并发数为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相关推荐
- python asyncio 使用方法
python asyncio import asyncio async def work(i):print("运行work{}".format(i))return "wo ...
- python asyncio和celery对比_如何将Celery与asyncio结合? - python
如何创建使芹菜任务看起来像asyncio.Task的包装器?还是有更好的方法将Celery与asyncio集成? @ asksol,Celery的创建者said this:: 使用Celery作为异步 ...
- python asyncio future_Python asyncio.isfuture方法代码示例
本文整理汇总了Python中asyncio.isfuture方法的典型用法代码示例.如果您正苦于以下问题:Python asyncio.isfuture方法的具体用法?Python asyncio.i ...
- Python Asyncio 所有异步协程库用法详解
title: Asyncio并发编程 copyright: true top: 0 date: 2019-04-03 14:09:24 tags: Asyncio categories: Python ...
- python asyncio future_Python asyncio.ensure_future方法代碼示例
本文整理匯總了Python中asyncio.ensure_future方法的典型用法代碼示例.如果您正苦於以下問題:Python asyncio.ensure_future方法的具體用法?Python ...
- python asyncio教程_python中使用asyncio实现异步IO实例分析
1.说明 Python实现异步IO非常简单,asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持. asyncio的编程模型就是一个消息循环.我们从asyncio模块中直接 ...
- python asyncio tcp server_Python 3.4 中新的 asyncio : Servers、Protocols 和 Transports
使用 Clients and Servers 在上面的例子中,telnet是一个客户端.asyncio模块提供了一个协程方便你很容易的使用stream reader 和 writer来编写服务端和客户 ...
- python asyncio与aiohttp_python链家网异步IO爬虫,使用asyncio、aiohttp和aiomysql
python链家网异步IO爬虫,使用asyncio.aiohttp和aiomysql 平均1秒可以爬取30个详情页信息 可以使用asyncio.Semaphore来控制并发数,达到限速的效果 # -* ...
- python asyncio回调函数_最近用 Python 的 asyncio,有好多不懂。。
15 2017-03-14 19:35:58 +08:00 16 说下我对这 python 这几种 web 模型的理解吧: 首先是 http server + wsgi server(contai ...
- python asyncio文件操作_Python asyncio文档阅读摘要
文档地址:https://docs.python.org/3/library/asyncio.html 文档第一句话说得很明白,asyncio是单线程并发,这种event loop架构是很多新型异步并 ...
最新文章
- TX2---远程操作
- string转map集合_[系列文章] Go - Map 集合
- KB2533623 下载
- SpringBoot高级-消息-RabbitTemplate发送接受消息序列化机制
- 配置mysql环境变量
- android fileinputstream 获取file,Android FileInputStream没有读取文件
- 极简短网址-一套简约的短网址程序
- asc和desc全称_MySQL数据排序asc、desc
- esxi 环境 西数硬盘测试软件,手把手教你测试固态硬盘!硬盘测试软件大汇总
- 学习分享:RNN(持续更新)
- 钉钉微应用PC开发版调试
- 《计算传播学导论》读书笔记——第二章文本分析简介
- 在企业中应用的区块链应能够扩容以满足业务条线的需求
- 哥德尔不完全性定理 关系 谓词和代入——哥德尔读后之二十
- Java 类加载顺序与成员变量初始化
- 重学计算机网络(二) - 曾记否,查IP地址
- 小草说----大数据和机器学习为什么这样火
- 《VTL语法参考指南》中文版[转]
- mysql gman do_Mysql 与Redis的同步实践
- 普林斯顿大学计算机科学排名,普林斯顿大学计算机科学与信息系统世界排名2020年最新排名第11(QS世界排名)...