之後四天,會講講以前面知識做基礎開發時,會遇到的問題 在前面,講到了coroutine是什麼,不妥善處理會有workleak,也介紹了他的exceptiom和取...
上面講到job會由系統分配,但為什麼我們又能把job當作參數傳入coroutine呢? 繼承 在前面講過,我們可以在coroutine再建立coroutine,...
我先講解法,再講為甚麼volatile沒用 那我會搭配文檔講,但其實不管情境怎麼會概念還是一樣的,這裡範例選用和文檔一樣的從1加到10萬 atomic原子性 前...
前面我們談了,coroutine的coroutineScope、繼承、異常處理和取消,也在文中提到了他們和structure concurrency的特性,想必...
昨天我們使用了 shareIn 將 Flow 轉成 SharedFlow, 我們來研究一下這個函式。 public fun <T> Flow<...
儘管大家講coroutine都會提到channel和flow,然後開始比較,但我個人覺得channel和flow兩個你都沒有概念的時候,聽我比較很難知道我在說什...
Flow 經過 Intermediate operators 將資料經過處理之後,最後一步則是要把資料輸出,而將資料輸出則是要透過 Terminal opera...
Coroutine 是非同步程式的解決方案,我們將耗時的任務置放在 suspend 函式中,在正常的使用 coroutine 情況之下,這些 suspend 函...
What is Flow? Flow 是用來處理非同步的資料流的一種方式,它會按照發射 (emit) 的順序來執行。 An asynchronous data...
Coroutine 的三大要素不知道大家還記得嗎?CoroutineScope、Suspend function、Dispatchers。 CoroutineS...
Flow 是屬於 coroutine 範圍項目,coroutine 中一個重要的特點可以輕易的切換執行緒,在 Flow 也有這項功能嗎? 我們知道要在 Coro...
還記得launch 的回傳值是 Job 嗎?我們可以使用 job 的 cancel() 來取消該 Coroutine。不知道你有沒有想過 Job 是什麼東西呢?...
前言 今天東西不多,算是給前面做一個補充資訊,明天開始會講Flow了,又是會是超長的文章 正文 想不到吧? job也有生命週期,我沒有亂套名詞喔,文檔自己寫li...
我們在上一篇的文章中,介紹了 Flow 的基本概念,包括如何建立一個 Flow,以及 Flow 是一個 Cold stream,所謂的 cold stream...
提醒,select仍是實驗中的api,請斟酌使用 在這之前的26天,我們所用的都是我要做什麼事,就是做什麼事,不會有條件的選取,但作為android的開發者,一...
在上一篇文章我們建立 Channel 時,使用 Channel<E>() 來建立一個 Channel。這個方法是由 Coroutine 所提供的一個...
系統除了即時接受及回應使用者請求,也需要執行各種非同步工作,例如背景排程及寄送訊息通知…等。在實作上,雖然我可以直接使用 CompletableFuture,...
Flow 是依序執行的,如果使用 collect 作為終端運算子,那麼在最後就會按照每一個元素所要花費的時間一一的執行,並把結果吐出來。 如下面的範例: cla...
這是我們內建的 suspend 函式第三篇,讓我們看看有哪些吧: joinAll() 還記得 join() 的功能是什麼嗎?join() 可以讓目前的 cor...
不知不覺過了三十天,在這三十天中,我們學習了 Coroutine 的每一個面向,我們知道 Coroutine 是用來解決非同步程式執行的問題,它讓我們在面對非同...
上一篇我們寫了一些 EtaViewModel 的測試,這一篇會集中寫跟時間相關的測試。 之前在 EtaViewModel 我們定義了更新一次的間距常數 AUTO...
Flow 是 cold stream,只有在呼叫 Terminal operator 的時候才會執行。也就是說每一個 Flow 都只有一次性的工作,只要呼叫一次...
昨天我們談了蠻多概念的,今天就讓我們具體談 Coroutine 的實作細節吧! Suspend function Suspend 是使用 Coroutine 的...
已經開始陷入半夜12點製片的for迴圈了@@"好險現在的i值已經小於等於23...(暈~) (溫馨小提醒:影片畫質設成1080會比較清楚喔!!) K...
不知不覺來到了第28天,最後我們來做個複習吧。 Coroutine 的目的 用來解決非同步程式執行的問題,在以前面對非同步的程式時,我們可能需要建立一個新的執行...
withContext suspend fun<T> withContext(context: CoroutineContext,...
還記得昨天講 expect/actual 的時候提到了 Coroutine 嗎?作為 Kotlin 一個非常重要功能,今天我們就單獨拉一篇來介紹一下。 雖然說...
影片做好才發現一開始就口誤,把第六天講成第五天@@"(該喝RedBull了...) 今天練習用的Sample:KtorDay6-TelegramSam...
今天再講些簡單的,順便複習複習前面的東西,之後又有幾天比較硬的內容我們每次創建coroutine都匯回傳一個job,而我們除了cancel,還可以用他的其他方法...
本文就是 Coroutine 的最後一篇了,當然圍繞著 Coroutine 一定還有很多主題可以分享,但局限於鐵人賽篇幅,今天我們就著重在於怎麼切 Thread...