技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2024 iThome 鐵人賽
DAY
1
0
自我挑戰組
Notes from an android developer
系列 第
1
篇
#001 kotlin flow
16th鐵人賽
艾克西猴
2024-09-14 23:27:11
104 瀏覽
分享至
工作上開始接觸 kotlin 的 flow, 所以先來一些關於 flow 的整理, 彙整自己的認識
什麼是 kotlin flow
Kotlin Flow 是一種的非同步的 stream,可以在一段時間內發出多個值。它由 Flow 介面定義,需要實作一個稱為 collect 的方法。與傳統的非同步不同,Flow 允許以聲明的方式來處理 data stream,讓應用程式更容易管理複雜的資料流。
關於 Flow 幾個特性
Cold Streams:
Flow 是 cold stream (冷資料流), 意思是在 stream 被 collect 之前,其程式碼不會執行。此行為與 RxJava 的 Observables 相似,只有當 subscriber 訂閱時才會開始 emission.
Asynchronous Emission:
Flow 可使用
emit()
函式以非同步的方式 emit 數值/資料,允許 non-blocking 的操作。這對於長時間執行的任務或 I/O 受限的作業特別有用
與 Coroutines 的緊密整合;
Flow 可與 Kotlin Coroutines 無縫地運作,讓開發人員可以利用 suspending functions 和 Coroutine builders 來管理 concurrency,而不需要傳統 threading models 的複雜性。
Cancellation: Flow 支援結構化 (structured) concurrency, 當一個 Flow 不再被需要時, 你可以 cancel 一個 Flow.
Error Handling: 當資料處裡過程中如有異常 (exception) 發生提供有錯誤控制機制.
留言
追蹤
檢舉
下一篇
#002 flow example
系列文
Notes from an android developer
共
5
篇
目錄
RSS系列文
訂閱系列文
0
人訂閱
1
#001 kotlin flow
2
#002 flow example
3
#003 kotlin flow more examples
4
#004 kotlin channelFlow
5
#005 kotlin channelFlow-2
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22081
篇
完賽人數
594
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
WIN11 一直跳出中毒的訊息
資料庫系統
網域切換的技術詢問
PYTHON 工具
如何讓內網的FortiGate防火牆可以收到韌體更新與下載
請問華碩分享器的系統紀錄這是在說明什麼
Mail server 資料不見
掃qr code圖示後是同時進入兩個網址
UPS相關供電問題
有關於Plesk 記憶體使用 的疑惑
熱門回答
WIN11 一直跳出中毒的訊息
如何讓內網的FortiGate防火牆可以收到韌體更新與下載
有關於Plesk 記憶體使用 的疑惑
資料庫系統
PYTHON 工具
熱門文章
PrintNightmare: 沒想到會被 Windows 11 終結
Day 39 - 使用 Angular 19 中的 Resource API 進行資料檢索
後 Grafana 時代的第三十一天 - AlertSnitch 告警歷史可視化的利器
Day 38 - 在 Angular 19 中重置或設定 LinkedSignal 中的值
當了兩個月的轉職工程師是怎樣的感覺?
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}