iT邦幫忙

coroutine相關文章
共有 75 則文章
鐵人賽 Software Development DAY 9

技術 Day 08:coroutineScope 與 supervisorScope,兩種收斂行為的差異

《Day 07:Structured Concurrency,為什麼協程不能亂長亂放》 建立了一個標準規則:子協程失敗,預設會向上影響整個父範圍,導致父協程與其...

鐵人賽 Software Development DAY 8

技術 Day 07:Structured Concurrency,為什麼協程不能亂長亂放

Day 06:Coroutine Scope,協程住在哪裡、活多久 結尾留下一個問題:同一個 Scope 裡同時養著好幾個協程,其中一個出事,會不會連累其他協程...

鐵人賽 Software Development DAY 7

技術 Day 06:Coroutine Scope,協程住在哪裡、活多久

《Day 05:把暫停機制與啟動方式放在一起跑一次》結尾留下一個問題沒有回答:協程數量一多,誰該負責統一管理它們,確保這些協程不會各自失控地一直跑下去。今天要正...

鐵人賽 Software Development DAY 6

技術 Day 05:把暫停機制與啟動方式放在一起跑一次

《Day 04:launch、async、runBlocking,三種 Coroutine Builder 該選誰》 結尾留下一個約定:把這幾天分別認識的東西,...

鐵人賽 Software Development DAY 5

技術 Day 04:launch、async、runBlocking,三種 Coroutine Builder 該選誰

《Day 03:Continuation 是什麼,編譯器在背後偷偷做了什麼事》留下一個問題。suspend function 內部已經具備暫停與恢復的能力,這套...

鐵人賽 Software Development DAY 4

技術 Day 03:Continuation 是什麼,編譯器在背後偷偷做了什麼事

《Day 02:第一個 suspend function,暫停到底暫停了什麼》 留下一個還沒解開的疑問。suspend function 暫停的時候,一定需要某...

鐵人賽 Software Development DAY 3

技術 Day 02:第一個 suspend function,暫停到底暫停了什麼

《Day 01:為什麼你需要協程,從一個會卡住主執行緒的下載函式說起》 停在一個問題上:如果一段程式碼能看起來依序寫下去,遇到等待卻不會卡住主執行緒,那麼它在等...

鐵人賽 Software Development DAY 2

技術 Day 01:為什麼你需要協程,從一個會卡住主執行緒的下載函式說起

你按下取消鍵,畫面上的轉圈圈圖示卻還在轉。你確定自己呼叫了取消,Log 也印出了取消的訊息,但那個背景工作就是不肯停下來,畫面卡在那裡,好像根本沒聽到你說了什麼...

鐵人賽 Software Development DAY 1

技術 Day 00:異步程式設計修煉:Kotlin Coroutines 完全指南

你大概寫過這樣的程式碼。一個 viewModelScope.launch 包住一段網路請求,一個 async 搭配 awaitAll 平行抓了好幾筆資料,跑起來...

技術 Kotlin - 當CoroutineScope中發生Exception的各種狀況

先談談於coroutine中發生exception的時候會有什麼事情發生,先來看看一般的狀況 import kotlinx.coroutines.* susp...

鐵人賽 Modern Web DAY 29

技術 第二十九章、高效能PHP: Anser 與非阻塞常駐型 PHP Web 伺服器 - PHP 微服務入門與開發

經過了前兩章的分享,我們成功地使用 PHP 建立起了一個非阻塞的常駐型伺服器。本章我們將關注於如果將 Workerman 與 Swow 等技術與 Anser 進...

鐵人賽 Modern Web DAY 28

技術 第二十八章、高效能PHP:SWOW & Workerman - 以 Coroutine 實現的非阻塞常駐型 PHP Web 伺服器 - PHP 微服務入門與開發

一直以來,多數的 PHP 應用程式都是阻塞式地執行。當 PHP 程式遇到如資料庫查詢或檔案讀寫等操作時,它會等待這些動作完成才繼續執行下一行程式碼。在較高並行處...

鐵人賽 Software Development DAY 22
Kotlin on the way 系列 第 22

技術 Day 22 異步程式 Asynchronous

為什麼要異步 快,再快點,我們都討厭等待 但同時執行多項任務是非常需要技巧的,我們要在意順序、資源,更中意的是如果沒管理好,每次執行的順序可能會不一樣,造成不同...

鐵人賽 Mobile Development DAY 17

技術 Day 17 - Android Kotlin Coroutine

Coroutine(協程)可以看作輕量級的 thread(執行緒),執行緒是作業系統負責調度,協程則是應用程式負責調度,因為少了 system call 等步驟...

鐵人賽 Mobile Development DAY 14
Kotlin 全面啟動 系列 第 14

技術 [Kotlin 全面啟動] Coroutine III

本文就是 Coroutine 的最後一篇了,當然圍繞著 Coroutine 一定還有很多主題可以分享,但局限於鐵人賽篇幅,今天我們就著重在於怎麼切 Thread...

鐵人賽 Mobile Development DAY 13
Kotlin 全面啟動 系列 第 13

技術 [Kotlin 全面啟動] Coroutine II

昨天我們談了蠻多概念的,今天就讓我們具體談 Coroutine 的實作細節吧! Suspend function Suspend 是使用 Coroutine 的...

鐵人賽 Mobile Development DAY 12
Kotlin 全面啟動 系列 第 12

技術 [Kotlin 全面啟動] Coroutine

還記得昨天講 expect/actual 的時候提到了 Coroutine 嗎?作為 Kotlin 一個非常重要功能,今天我們就單獨拉一篇來介紹一下。 雖然說...

鐵人賽 Mobile Development DAY 30

技術 day30 Kotlin coroutine 結賽統整

有人說作為新手不好理解,我覺得蠻正常的,一來我中文其實不好,二來要理解新概念只用看的其實不夠,最好是動手寫code,將理解的概念自己用code呈現出來,這時概念...

鐵人賽 Mobile Development DAY 29

技術 Leftover topics

我們終於來到第廿九篇,我們這次討論的題目都是之前討論過的東西的延伸。因為篇幅和時間有限就只好把它們合併成一篇。 Two-way data binding 我們在...

鐵人賽 Mobile Development DAY 29

技術 day29 大量操作怎麼辦? 連volatile都救不了我QQ

我先講解法,再講為甚麼volatile沒用 那我會搭配文檔講,但其實不管情境怎麼會概念還是一樣的,這裡範例選用和文檔一樣的從1加到10萬 atomic原子性 前...

鐵人賽 Mobile Development DAY 28

技術 day28 等一下啦,會壞掉的/// Coroutine併發操作的重複請求

沒有要開車,參賽規定有寫不能污言穢語,等我有空再去其他平台寫個開車系列的coroutine 這裡給個快轉,android開發者從1開始看,ktor從2開始看 如...

鐵人賽 Mobile Development DAY 28

技術 ETA screen testing (2)

上一篇我們寫了一些 EtaViewModel 的測試,這一篇會集中寫跟時間相關的測試。 之前在 EtaViewModel 我們定義了更新一次的間距常數 AUTO...

鐵人賽 Mobile Development DAY 27

技術 day27 coroutine和任務的愛情長跑,application和workManager

之後四天,會講講以前面知識做基礎開發時,會遇到的問題 在前面,講到了coroutine是什麼,不妥善處理會有workleak,也介紹了他的exceptiom和取...

鐵人賽 Mobile Development DAY 26

技術 day26 老闆我趕時間,給我最快完成的料理 select

提醒,select仍是實驗中的api,請斟酌使用 在這之前的26天,我們所用的都是我要做什麼事,就是做什麼事,不會有條件的選取,但作為android的開發者,一...

鐵人賽 Mobile Development DAY 26

技術 Station list screen testing

終於來到為 ViewModel 寫 unit test 的部分,亦都意味着這個系列快要完結。之前我們寫過其他 layer 的 unit test,用過 Mock...

鐵人賽 Mobile Development DAY 25

技術 day25 矮額是callback,把它變成flow好了 簡單的callbackFlow

終於寫道flow的最後一篇了 儘管我們在自己的開發上,能夠高興地寫coroutine和suspend,但人生總是不那麼美好,我們會在各式sdk或套件裡遇到cal...

鐵人賽 Mobile Development DAY 24

技術 day24 stateflow和shareflow是如何取代livedata的,聊聊use case吧!!

記得我們說的特性吧,stateflow會在舊值和新值相同的情況下不做更新,但有時我們需要在每次retry某些動作,比如重新連線、重新載入等等 這時,我們就需要用...

鐵人賽 Mobile Development DAY 23

技術 day23 stateFlow狀態流,又是沒梗的一天

前面我們講到如何應coroutine的flow和liveData合作,但android其實還推出了另一個東西,stateFlow,剛好之前的line截圖,也點出...

鐵人賽 Mobile Development DAY 22

技術 day22 熱流sharedFlow

在flow那篇我們了解到flow的特性,尤其是每次collect都會創建新的實例,但在某些use case卻不適用,而kotlin為此推出了shareflow和...

鐵人賽 Mobile Development DAY 21

技術 day21 開分支,淺談kotlin paging3 with flow

注意,我只講了codelab的50%左右,但對paging3和flow的概念講完了 通常有codelab,我都會直接叫人去看,但唯獨paging3,我覺得值得一...