Python非同步設計|使用Asyncio
-
9折 432元
480元
-
預計最高可得金幣20點 ? 可100%折抵
活動加倍另計 -
HAPPY GO享100累1點 4點抵1元折抵無上限
- 作者: Caleb Hattingh 追蹤 ? 追蹤作者後,您會在第一時間收到作者新書通知。
- 譯者:林信良
- 出版社: 歐萊禮 追蹤 ? 追蹤出版社後,您會在第一時間收到出版社新書通知。
- 出版日:2020/08/19
配送方式
-
台灣
- 國內宅配:本島、離島
-
到店取貨:不限金額免運費
-
海外
- 國際快遞:全球
-
港澳店取:
內容簡介
理解Python非同步設計特性
「非同步是程式寫作者手中極具威力的工具之一,然而新手難以掌握。這本小書揭開了Python非同步程式設計的神秘色彩,教你撰寫出能多工的程式碼。」
-Charles Giver
資料科學家,摩根大通
如果你是被asyncio的複雜給耽誤了的Python開發者之一,是時候另眼相看了。Asyncio複雜的原因在於,它試圖同時解決框架設計者與直接使用的開發者,在並行網路程式設計方面的問題。直接使用的開發者只需要在乎asyncio API中一小部份的特性,只不過正確地找出這些特性需要些技巧,而這正是這本實用書的著力之處。
Python開發老手Caleb Hattingh將帶你認識asyncio的基礎-足以開始寫個基於事件的簡單程式。從中你可以瞭解到,相較於先佔式多工(執行緒),asyncio為何是更安全的選擇,以及面對同時間數以萬計的socket連線時,API如何簡單地提供支援。
‧asyncio與執行緒在並行網路設計方面的重要比較
‧整體瞭解一下asyncio,有個快速起步會用來探討基於事件的程式設計中,底層的迴圈機制
‧認識asyncio特性中,針對直接使用開發者與框架設計者的不同特性
‧理解asyncio新的async/await語法,以及協程、Task、Future API
‧對於一些asyncio相容的第三方程式庫,提供詳細的案例研究(附程式碼)
「非同步是程式寫作者手中極具威力的工具之一,然而新手難以掌握。這本小書揭開了Python非同步程式設計的神秘色彩,教你撰寫出能多工的程式碼。」
-Charles Giver
資料科學家,摩根大通
如果你是被asyncio的複雜給耽誤了的Python開發者之一,是時候另眼相看了。Asyncio複雜的原因在於,它試圖同時解決框架設計者與直接使用的開發者,在並行網路程式設計方面的問題。直接使用的開發者只需要在乎asyncio API中一小部份的特性,只不過正確地找出這些特性需要些技巧,而這正是這本實用書的著力之處。
Python開發老手Caleb Hattingh將帶你認識asyncio的基礎-足以開始寫個基於事件的簡單程式。從中你可以瞭解到,相較於先佔式多工(執行緒),asyncio為何是更安全的選擇,以及面對同時間數以萬計的socket連線時,API如何簡單地提供支援。
‧asyncio與執行緒在並行網路設計方面的重要比較
‧整體瞭解一下asyncio,有個快速起步會用來探討基於事件的程式設計中,底層的迴圈機制
‧認識asyncio特性中,針對直接使用開發者與框架設計者的不同特性
‧理解asyncio新的async/await語法,以及協程、Task、Future API
‧對於一些asyncio相容的第三方程式庫,提供詳細的案例研究(附程式碼)
目錄
第一章 簡介Asyncio
ThreadBots餐廳
閉幕語
Asyncio想解決的問題?
第二章 Thread的真相
執行緒的優點
執行緒的缺點
案例研究:機器人與餐具
第三章 盤點Asyncio
快速起步
Asyncio之塔
協程
事件迴圈
Task與Future
非同步情境管理器:async with
非同步迭代器:async for
更簡單的非同步產生器函式
非同步包含式
適當地啟動與關機
第四章 20 個沒用過的Asyncio 程式庫(不過⋯哦,別擔心)
Stream(標準程式庫)
Twisted
Janus 佇列
aiohttp
ØMQ(ZeroMQ)
asyncpq 與Sanic
其他程式庫與資源
第五章 想法總結
附錄A Python 非同步支援簡史
附錄B 補充資料
ThreadBots餐廳
閉幕語
Asyncio想解決的問題?
第二章 Thread的真相
執行緒的優點
執行緒的缺點
案例研究:機器人與餐具
第三章 盤點Asyncio
快速起步
Asyncio之塔
協程
事件迴圈
Task與Future
非同步情境管理器:async with
非同步迭代器:async for
更簡單的非同步產生器函式
非同步包含式
適當地啟動與關機
第四章 20 個沒用過的Asyncio 程式庫(不過⋯哦,別擔心)
Stream(標準程式庫)
Twisted
Janus 佇列
aiohttp
ØMQ(ZeroMQ)
asyncpq 與Sanic
其他程式庫與資源
第五章 想法總結
附錄A Python 非同步支援簡史
附錄B 補充資料
序/導讀
序
Python 3.4導入了asyncio程式庫,而Python 3.5提供async與await關鍵字,讓這個程式庫用來更為愉悅,這些新特性可以進行所謂的非同步程式設計。
我會用Asyncio來代表這些新特性,Python社群對這些新特性一直抱著謹慎的態度;社群中有些人認為它們複雜而難以理解,不單是初學者有這樣的觀點:Python社群的貢獻者中有些人也立場明確地表示,他們對Python中Asyncio API的複雜性有疑慮,而社群中的教育工作者也擔心,不知道該怎麼樣才能教好Asyncio。
對於Python有個幾年經驗的人們,之前都用過執行緒,就算你沒用過,應該也遇過阻斷吧!例如,如果使用過request程式庫撰寫程式的話,一定注意過程式在進行request.get(url)時會暫停一陣子;這就是阻斷行為。
對於只執行一次的作業,這沒什麼問題;然而,若要同時取得一萬個URL的資料,使用request就會有問題。大規模的並行是使用Asyncio的重要原因之一,不過Asyncio另一個重大的吸引力是,優於先佔式執行緒的安全性:使用Asyncio,比較能避開競速(race condition)方面的臭蟲。
本書的目的是讓你對這些新特性有個基本認識,知道為何要導入這些特性,以及如何在自身專案中使用這些特性。
Python 3.4導入了asyncio程式庫,而Python 3.5提供async與await關鍵字,讓這個程式庫用來更為愉悅,這些新特性可以進行所謂的非同步程式設計。
我會用Asyncio來代表這些新特性,Python社群對這些新特性一直抱著謹慎的態度;社群中有些人認為它們複雜而難以理解,不單是初學者有這樣的觀點:Python社群的貢獻者中有些人也立場明確地表示,他們對Python中Asyncio API的複雜性有疑慮,而社群中的教育工作者也擔心,不知道該怎麼樣才能教好Asyncio。
對於Python有個幾年經驗的人們,之前都用過執行緒,就算你沒用過,應該也遇過阻斷吧!例如,如果使用過request程式庫撰寫程式的話,一定注意過程式在進行request.get(url)時會暫停一陣子;這就是阻斷行為。
對於只執行一次的作業,這沒什麼問題;然而,若要同時取得一萬個URL的資料,使用request就會有問題。大規模的並行是使用Asyncio的重要原因之一,不過Asyncio另一個重大的吸引力是,優於先佔式執行緒的安全性:使用Asyncio,比較能避開競速(race condition)方面的臭蟲。
本書的目的是讓你對這些新特性有個基本認識,知道為何要導入這些特性,以及如何在自身專案中使用這些特性。
詳細資料
詳細資料
-
- 語言
- 中文繁體
- 裝訂
- 紙本平裝
-
- ISBN
- 9789865025915
- 分級
- 普通級
-
- 頁數
- 168
- 商品規格
- 18開17*23cm
-
- 出版地
- 台灣
- 適讀年齡
- 全齡適讀
-
- 注音
- 級別
訂購/退換貨須知
退換貨須知:
**提醒您,鑑賞期不等於試用期,退回商品須為全新狀態**
-
依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,以下商品購買後,除商品本身有瑕疵外,將不提供7天的猶豫期:
- 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮食品)
- 依消費者要求所為之客製化給付。(客製化商品)
- 報紙、期刊或雜誌。(含MOOK、外文雜誌)
- 經消費者拆封之影音商品或電腦軟體。
- 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等)
- 已拆封之個人衛生用品。(如:內衣褲、刮鬍刀、除毛刀…等)
- 若非上列種類商品,均享有到貨7天的猶豫期(含例假日)。
- 辦理退換貨時,商品(組合商品恕無法接受單獨退貨)必須是您收到商品時的原始狀態(包含商品本體、配件、贈品、保證書、所有附隨資料文件及原廠內外包裝…等),請勿直接使用原廠包裝寄送,或於原廠包裝上黏貼紙張或書寫文字。
- 退回商品若無法回復原狀,將請您負擔回復原狀所需費用,嚴重時將影響您的退貨權益。
商品評價