注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術工業(yè)技術建筑科學建筑設計深入理解Kotlin協程

深入理解Kotlin協程

深入理解Kotlin協程

定 價:¥79.00

作 者: 霍丙乾
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787111655916 出版時間: 2020-07-01 包裝:
開本: 16開 頁數: 236 字數:  

內容簡介

  這是一部從工作機制、實現原理、應用場景、使用方法、實踐技巧、標準庫、框架、應用案例等多個維度全面講解Kotlin協程的專著,它同時提供了多語言視角,亦可通過本書了解其他語言的協程。本書作者是騰訊的的高級工程師,是國內Kotlin領域的先驅者和布道者,不僅在工程實踐領域積累了豐富的經驗,而且在Kotlin開發(fā)者社群里有廣泛的影響力和號召力。 【全書共9章】:●第1章從協程的核心應用場景——異步程序設計的思路和關鍵問題切入,引出Kotlin協程的概念;●第2章首先介紹了協程的概念、分類,然后講解了Python、Lua、Go等不同語言的協程實現和對比;●第3~4章以 Kotlin 標準庫的協程 API 為核心,講解了簡單協程的使用方法和運行機制,以及通過簡單協程設計和實現復合協程的思路和方法;●第5~6章以Kotlin的官方協程框架為模板,通過逐步實現其中的核心功能,分析了其中的實現細節(jié)和復合協程的運行機制,并對框架的使用做了深入探討;●第7~8章講解了協程在Android應用開發(fā)和Web服務開發(fā)中的應用場景、面臨的挑戰(zhàn),以及解決各種常見問題的方法和思路;●第9章探討了JavaScript 和 Native等非JVM平臺對協程的支持情況,以及協程在這些平臺上的應用。

作者簡介

  霍丙乾(Bennyhuo) 畢業(yè)于北京郵電大學,現任騰訊地圖數據采集研發(fā)中心團隊移動客戶端技術負責人。 資深Kotlin技術專家,國內知名的Kotlin開發(fā)者和布道師。 2016年10月創(chuàng)建微信公眾號Kotlin,持續(xù)發(fā)布Kotlin相關的文章和教學視頻,頗受歡迎。 2017年初開始參與Kotlin中文相關網站的翻譯和維護至今。

圖書目錄

●前言

●第1章 異步程序設計介紹     1

1.1 異步的概念   1

1.1.1 程序的執(zhí)行       1

1.1.2 異步與回調       2

1.1.3 回調地獄   3

1.2 異步程序設計的關鍵問題   4

1.2.1 結果傳遞   4

1.2.2 異常處理   6

1.2.3 取消響應   8

1.2.4 復雜分支   9

1.3 常見異步程序設計思路      10

1.3.1 Future 11

1.3.2 CompletableFuture    11

1.3.3 Promise與async/await      13

1.3.4 響應式編程       15

1.3.5 Kotlin協程 15

1.4 本章小結      17

 

●第2章 協程的基本概念  18

2.1 協程究竟是什么   18

2.2 協程的分類   20

2.2.1 按調用棧分類   20

2.2.2 按調度方式分類       22

2.3 協程的實現舉例   22

2.3.1 Python的Generator  23

2.3.2 Lua標準庫的協程實現    24

2.3.3 Go的go routine 27

2.4 本章小結      30

 

●第3章 Kotlin協程的基礎設施      31

3.1 協程的構造   31

3.1.1 協程的創(chuàng)建       32

3.1.2 協程的啟動       32

3.1.3 協程體的Receiver    34

3.1.4 可掛起的main函數  36

3.2 函數的掛起   37

3.2.1 掛起函數   37

3.2.2 掛起點       38

3.2.3 CPS變換   39

3.3 協程的上下文      41

3.3.1 協程上下文的集合特征   41

3.3.2 協程上下文元素的實現   42

3.3.3 協程上下文的使用   43

3.4 協程的攔截器      45

3.4.1 攔截的位置       45

3.4.2 攔截器的使用   46

3.4.3 攔截器的執(zhí)行細節(jié)   47

3.5 Kotlin協程所屬的類別       48

3.5.1 調用棧的廣義和狹義       48

3.5.2 調度關系的對立與統一   49

3.6 本章小結      50

 

●第4章 Kotlin協程的拓展實踐      51

4.1 序列生成器   51

4.1.1 仿Python的Generator實現    52

4.1.2 標準庫的序列生成器介紹       56

4.2 Promise模型 57

4.2.1 async/await與suspend的設計對比  58

4.2.2 仿JavaScript的async/await實現    59

4.3 Lua風格的協程API    61

4.3.1 非對稱API實現       61

4.3.2 對稱API實現   67

4.4 再談協程的概念   72

4.4.1 簡單協程與復合協程       73

4.4.2 復合協程的實現模式       73

4.5 本章小結      74

 

●第5章 Kotlin協程框架開發(fā)初探  75

5.1 開胃菜:實現一個delay函數    75

5.2 協程的描述   77

5.2.1 協程的描述類   78

5.2.2 協程的狀態(tài)       79

5.2.3 支持回調的狀態(tài)       80

5.2.4 協程的初步實現       83

5.3 協程的創(chuàng)建   84

5.3.1 無返回值的launch    84

5.3.2 實現invokeOnCompletion       85

5.3.3 實現join    89

5.3.4 有返回值的async     90

5.4 協程的調度   92

5.4.1 協程的執(zhí)行調度       92

5.4.2 協程的調度位置       93

5.4.3 協程的調度器設計   93

5.4.4 基于線程池的調度器       94

5.4.5 基于UI事件循環(huán)的調度器     96

5.4.6 為協程添加默認調度器   97

5.5 協程的取消   98

5.5.1 完善協程的取消邏輯       98

5.5.2 支持取消的掛起函數       100

5.5.3 CancellableContinuation的實現       103

5.5.4 改造掛起函數   106

5.6 協程的異常處理   109

5.6.1 定義異常處理器       110

5.6.2 處理協程的未捕獲異常   111

5.6.3 區(qū)別對待取消異常   111

5.6.4 異常處理器的運用   113

5.7 協程的作用域      113

5.7.1 作用域的概念   113

5.7.2 作用域的聲明   114

5.7.3 建立父子關系   116

5.7.4 頂級作用域       116

5.7.5 協同作用域       117

5.7.6 suspend fun main的作用域      119

5.7.7 實現異常的傳播       120

5.7.8 主從作用域       121

5.7.9 完整的異常處理流程       122

5.7.10 父協程等待子協程完成  122

5.8 本章小結      123

 

●第6章 Kotlin協程的官方框架      124

6.1 協程框架概述      124

6.1.1 框架的構成       124

6.1.2 協程的啟動模式       126

6.1.3 協程的調度器   127

6.1.4 協程的全局異常處理器   129

6.1.5 協程的取消檢查       130

6.1.6 協程的超時取消       132

6.1.7 禁止取消   133

6.2 熱數據通道Channel    134

6.2.1 認識Channel     134

6.2.2 Channel的容量  136

6.2.3 迭代Channel     138

6.2.4 produce和actor 138

6.2.5 Channel的關閉  140

6.2.6 BroadcastChannel      142

6.2.7 Channel版本的序列生成器     144

6.2.8 Channel的內部結構  146

6.3 冷數據流Flow     148

6.3.1 認識Flow  149

6.3.2 對比RxJava的線程切換  150

6.3.3 冷數據流   151

6.3.4 異常處理   151

6.3.5 末端操作符       153

6.3.6 分離Flow的消費和觸發(fā)  153

6.3.7 Flow的取消      154

6.3.8 其他Flow的創(chuàng)建方式     155

6.3.9 Flow的背壓      155

6.3.10 Flow的變換    157

6.4 多路復用select     158

6.4.1 復用多個await  158

6.4.2 復用多個Channel     160

6.4.3 SelectClause       161

6.4.4 使用Flow實現多路復用  161

6.5 并發(fā)安全      163

6.5.1 不安全的并發(fā)訪問   163

6.5.2 協程的并發(fā)工具       164

6.5.3 避免訪問外部可變狀態(tài)   165

6.6 本章小結      166

 

●第7章 Kotlin協程在Android上的應用       167

7.1 Android上的異步問題 167

7.2 協程對UI的支持 173      

7.3 常見框架的協程擴展   177

7.4 本章小結      184

 

●第8章 Kotlin協程在Web服務中的應用     185

8.1 多任務并發(fā)模型   185

8.2 協程在多任務模型中的運用      190

8.3 常見Web應用框架的協程擴展  193

8.4 本章小結      203

 

●第9章 Kotlin協程在其他平臺上的應用      204

9.1 Kotlin-Js       204

9.2 Kotlin-Native 212

9.3 本章小結      221


本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號