新書推薦:
《
开宝九年
》
售價:HK$
54.9
《
摄影构图法则:让画面从无序到有序
》
售價:HK$
110.9
《
论僭政:色诺芬《希耶罗》义疏(含施特劳斯与科耶夫通信集)
》
售價:HK$
109.8
《
一个经济杀手的自白
》
售價:HK$
109.8
《
传播与流动:移民、手机与集装箱(新闻与传播学译丛·学术前沿系列)
》
售價:HK$
109.8
《
大唐诡异录
》
售價:HK$
55.8
《
《证券分析》前传:格雷厄姆投资思想与证券分析方法
》
售價:HK$
134.3
《
当我点击时,算法在想什么?
》
售價:HK$
78.2
|
編輯推薦: |
一句话推荐
本书介绍了Python异步编程的基础知识,并且教你编写多任务脚本。
编辑推荐
如果你是那些被asyncio异步特性的复杂度所劝退的Python开发者之一的话,那么是时候需要重新审视一下了。异步的复杂性,旨在它需要同时解决框架和终端开发者层面面临的并发网络编程问题。你需要考虑的特性功能只是整个anyncio API很小的一个子集,但是选对正确的功能仍然是一件棘手的事情。这也是我们编写这本实用书的原因。
资深Python开发人员Caleb Hattingh将帮助你更好地理解异步构建领域的基础知识,足以开始编写简单的基于事件的程序。你会了解为什么asyncio提供了比抢占式多任务(线程)更安全的替代方案,以及异步API如何通过简单的方法就可以支持数千个同时套接字连接的。
专家推荐
“在开发者的工具箱中,异步编程是其中*强大的工具之一。但是它对于新人来说也是很难掌握的知识。本书将为你揭开Python异步编程的神秘面纱,并且教你编写多任务脚本。”
——Charles Givre
数据科学家,摩根大通
|
內容簡介: |
本书的主要内容有:从并发网络编程场景,对异步和多线程进行全面对比。进行asyncio代码的实战演练,提供包括使用基于事件的编程来实现循环等快速入门指南。了解面向终端开发者和框架开发者之间异步特性的区别。了解asyncio的新async/await语言语法,包括协程和任务以及future API。获取一些流行asyncio兼容的第三方库的详细案例研究(带代码)。
|
關於作者: |
Caleb Hattingh 拥有20多年的编程经验,擅长Python。他对于编码充满热情,为化学工程、客户关系管理(CRM)软件、酒店业、GPS追踪、自然语言处理等项目编写过软件。他拥有化学工程硕士学位。
|
目錄:
|
目录
前言 .1
第1 章 什么是异步 5
1.1 ThreadBots 餐厅 .5
1.2 结语 10
1.3 Asyncio 试图解决什么问题? 11
第2 章 关于线程的真相 15
2.1 线程的优势 . 16
2.2 线程的缺点 . 18
2.3 案例研究:机器人和餐具 21
第3 章 asyncio 演练 28
3.1 快速入门 29
3.2 异步之塔 36
3.3 协程 39
3.3.1 新关键词:async def 40
3.3.2 新的 await 关键字 . 43
3.4 事件循环 46
3.5 任务和期望 . 49
3.6 异步上下文管理器:async with 56
3.7 异步迭代器:async for . 61
3.8 使用异步生成器使代码更简单 . 65
3.9 异步推导 66
3.10 优雅的关闭和启动 69
3.10.1 Gather() 中的 return_exceptions=True 是什么? . 74
3.10.2 信号 76
3.10.3 在关闭期间等待执行程序 82
第4 章 20 个你没有使用过的 asyncio 库 88
4.1 Streams ( 标准库) 89
4.1.1 案例研究:消息队列 89
4.1.2 案例研究:改进消息队列 . 98
4.2 Twisted 103
4.3 Janus 队列 . 106
4.4 aiohttp . 108
4.4.1 案例研究:Hello World 108
4.4.2 案例研究:爬取新闻网站 109
4.5 ZeroMQ . 114
4.5.1 案例研究:多个套接字 115
4.5.2 案例研究:应用性能监控 119
4.6 asyncpg 和Sanic 128
4.7 其他异步库和资源 146
第5 章 总结 149
附录A Python 中异步特性的发展简史 . 151
附录B 补充材料 155
|
|