Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kotlin Coroutinesを通して理解するStructured Concurrency

Kotlin Coroutinesを通して理解するStructured Concurrency

■ イベント
After Kotlin Fest 2024 LT Night
https://sansan.connpass.com/event/320810/

■ 発表者
Bill One Engineering Unit
北村 研二

■ Bill One 開発エンジニア 採用情報
https://media.sansan-engineering.com/billone-engineer

SansanTech

July 08, 2024
Tweet

More Decks by SansanTech

Other Decks in Technology

Transcript

  1. 北村 研⼆ Sansan株式会社 技術本部 Mobile Applicationグループ 2019年中途⼊社 Sansan Androidチームのリーダーを担当した後、 Sansanのプロダクトマネージャーを担当し、

    2024年現在ではMobile Applicationグループのプロダクト横断チ ームのリーダーを担当しています。 複数のモバイルプロダクトに関わる技術的な課題の解決に取り組 んでいます。
  2. - Structured Concurrencyにより、ある並⾏処理でエラーが発⽣した場合に、 別の並⾏処理をキャンセルする事ができる エラー処理も楽になる suspend fun loadAndCombine(name1: String, name2:

    String): Image = coroutineScope { val deferred1 = async { loadImage(name1) } val deferred2 = async { loadImage(name2) } combineImages(deferred1.await(), deferred2.await()) }
  3. - Kotlin 1.1の頃、Kotlin CoroutinesはStructured Concurrencyの概念がなかった - その時点でのCoroutinesの魅⼒は、軽量スレッドで処理を中断できる点だった - Kotlin 1.1では、Coroutinesを開始するのにCoroutineScopeは必須ではなく、ど

    こからでもlaunchを使って処理を開始できた - Kotlin 1.3でCoroutinesが正式版になり、Structured Concurrencyの概念が導⼊さ れ、launchを使⽤する際にCoroutineScopeが必須となった Kotlin Coroutinesは最初Structured Concurrencyでは無かった