异步兼容的套接字池

aiosocketpool的Python项目详细描述


Circle CIBlack Code Style

aiosocketpool公司

异步兼容套接字池。简单,紧凑,易于扩展。在

如果您的应用程序需要同时(并且经常)连接到多个远程主机,那么 保持连接打开并重新使用它们,而不是为 每一个请求。结合一个asyncio事件循环和一个套接字池可能是一个好方法!在

基于socketpool。在

需要Python 3.7或更高版本。

示例

使用asyncio库在后台线程中运行一个简单的TCP echo服务器。在

importasyncioimportthreading# start a new event loop running in a background threaddefrun_loop_forever(loop):loop.run_forever()loop=asyncio.new_event_loop()t=threading.Thread(name="BackgroundEventLoop",target=run_loop_forever,args=[loop],daemon=True)t.start()# run a tcp echo server using asyncio in the background event loopasyncdefecho_handler(reader,writer):writer.write(awaitreader.read(32))awaitwriter.drain()writer.close()asyncdefecho_server(tcp_port):server=awaitasyncio.start_server(echo_handler,"127.0.0.1",tcp_port)awaitserver.serve_forever()asyncio.run_coroutine_threadsafe(echo_server(12345),loop)

在主线程中创建一个新的TCP连接池,获取一个连接,并发送和接收数据。在

^{pr2}$

创建一组连接并同时运行它们。在

loop=asyncio.get_event_loop()tasks=[]for_inrange(25):tasks.append(loop.create_task(hello_world()))loop.run_until_complete(asyncio.gather(*tasks))

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Android:如何写入特定行,Java   Java中从欧元货币字符串中删除空格的数字   Java非均匀多维数组   解密AES时出现java空指针异常   java ConcurrentModificationException尝试移除列表上的所有内容时(非迭代)   Java数学库计算日志   java ISO8601,使用Jackson以毫秒表示json   避免副作用的java最佳实践   java获取JMeterException:调用bsh方法时出错:未定义参数:saa。使用beanshell取样器时   使用javascript将会话从一个jsp页面传输到另一个jsp页面   java在列表中组合相邻元素   java多行JTextPane   java Hibernate映射文件连接两个表而不定义关系?   如何使用Ajax、Java和Spring框架将文件从网页上传到Google云存储   多线程多线程Java中producerconsumer代码的多线程没有提供正确的输出?