iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Software Development

Coroutine 停看聽 系列

只要有心,人人都可以成為 Coroutine 高手。

Coroutine 是 Kotlin 重點項目之一,因為它的特性,可以讓我們遠離 Callback hell,讓我們寫非同步的程式就像寫同步的程式一樣簡單。

它是一個輕量級的 Threads,使用 Coroutine 你就不需要考慮 Thread 的事情,因為 Coroutine 都幫你做好了。

另外,它同時提供 Flow 可以支援多個非同步的回傳值。

讓我們一起在三十天內好好學習 Coroutine 吧!

鐵人鍊成 | 共 30 篇文章 | 33 人訂閱 訂閱系列文 RSS系列文 團隊Kotlin 愛台灣 2021
DAY 11

Day11:調度器(Dispatchers),我跳進來了,又跳出去了

Coroutine 一個重要的特性就是可以輕易的切換執行緒,不過 Coroutine 是使用 CoroutineDispatcher (調度器) 來切換執行緒,...

2021-09-16 ‧ 由 Andy 安迪 分享
DAY 12

Day12:內建的 suspend 函式,好函式不用嗎?(1)

Coroutine 的三大要素不知道大家還記得嗎?CoroutineScope、Suspend function、Dispatchers。 CoroutineS...

2021-09-17 ‧ 由 Andy 安迪 分享
DAY 13

Day13:內建的 suspend 函式,好函式不用嗎? (2)

withContext suspend fun<T> withContext(context: CoroutineContext,...

2021-09-18 ‧ 由 Andy 安迪 分享
DAY 14

Day14:內建的 suspend 函式,好函式不用嗎? (3)

這是我們內建的 suspend 函式第三篇,讓我們看看有哪些吧: joinAll() 還記得 join() 的功能是什麼嗎?join() 可以讓目前的 cor...

2021-09-19 ‧ 由 Andy 安迪 分享
DAY 15

Day15:Channel 的第一堂課

在前面的文章中,我們介紹了 coroutine 的基本原理,如何使用 launch 、 async 建立 CoroutineScope,如何選擇適當的調度器,讓...

2021-09-20 ‧ 由 Andy 安迪 分享
DAY 16

Day16:四種不同的 Channel

在上一篇文章我們建立 Channel 時,使用 Channel<E>() 來建立一個 Channel。這個方法是由 Coroutine 所提供的一個...

2021-09-21 ‧ 由 Andy 安迪 分享
DAY 17

Day17:Flow,一個非同步的資料流。 First Look

What is Flow? Flow 是用來處理非同步的資料流的一種方式,它會按照發射 (emit) 的順序來執行。 An asynchronous data...

2021-09-22 ‧ 由 Andy 安迪 分享
DAY 18

Day18:Flow 的中間運算子,資料輸出前還可以做很多事喔

我們在上一篇的文章中,介紹了 Flow 的基本概念,包括如何建立一個 Flow,以及 Flow 是一個 Cold stream,所謂的 cold stream...

2021-09-23 ‧ 由 Andy 安迪 分享
DAY 19

Day19:Flow 準備好輸出了嗎?使用 Terminal operators 產生結果吧。

Flow 經過 Intermediate operators 將資料經過處理之後,最後一步則是要把資料輸出,而將資料輸出則是要透過 Terminal opera...

2021-09-24 ‧ 由 Andy 安迪 分享
DAY 20

Day20:Flow 想在其他的執行緒執行,可以嗎?

Flow 是屬於 coroutine 範圍項目,coroutine 中一個重要的特點可以輕易的切換執行緒,在 Flow 也有這項功能嗎? 我們知道要在 Coro...

2021-09-25 ‧ 由 Andy 安迪 分享