タグ

コルーチンに関するi_matsuiのブックマーク (6)

  • Kotlin のコルーチン (coroutines) について学ぶ - ひだまりソケットは壊れない

    KotlinConf 2017 の情報を追ったり、Ktor を見たりしているとコルーチンがよく出てくる。 コルーチンについては概要は知っているが詳細を追いかけていなかったので、コルーチンについて学んでメモ程度に記録しておく。 Kotlin 1.1 においてコルーチンは実験段階で、将来にはこのページの情報は古くなっているかもしれないので注意されたし。 記事に書かれている内容 コルーチンとは何か コルーチンの実装がどこにあるのか (言語サポートと標準ライブラリと外部ライブラリ) コルーチンの基的な使い方 コルーチンのキャンセル処理について コルーチンコンテキストについて チャンネル 並行性の問題 Select 文 Coroutine (コルーチン) って何? まずは公式リファレンスの情報を追う。 公式リファレンス : Coroutines - Kotlin Programming Lang

    Kotlin のコルーチン (coroutines) について学ぶ - ひだまりソケットは壊れない
  • 図で理解する Kotlin Coroutine - Qiita

    Kotlin 1.3 が2018年10月30日に正式版として公開されました。 それに伴い、コルーチンが stable へと昇格しました! 非同期処理を楽に書けるコルーチンですが、コルーチンの書き方はわかったものの、実際何がどう動いて何と何がどう関係しているのかといったメンタルモデルが構築されるまでよくわからないまま使ってました。 自分の理解の整理も兼ねて、自分の中のメンタルモデルを図と文で書き出してみました。 間違っているところなどございましたら、コメントなどでご指摘いただけますと幸いです。 Kotlin のコルーチンについて、多少どういったものであるかを知っている人向けになっていますので、そもそもコルーチンって何?って方はまずはこちらの記事をご覧ください。 また、記事では CoroutineContext のことを単に コンテキスト、 CoroutineScope のことを スコープ

    図で理解する Kotlin Coroutine - Qiita
  • Coroutines私的メモ2~Dispatchers, withContext, async/await~ - Qiita

    dispatchers コルーチンを使う際に、どのスレッドもしくはスレッドプールにて実行・制御したいということがあります その際にdispatcherを指定することで解決できます Dispatcherにもいくつか種類があるので使い分けたいところです Dispatchers.Main UIに関する処理をするメインスレッドのためのコルーチン Dispatchers.Main.immediate UI更新を即時行いたい際に使用される (e.g. textviewのtext更新とか) Dispatchers.Default 共有スレッドプールを使用し、CPUのコア数に従って設定される CPUに負荷をかけるような計算をするような処理に対して使うことが推奨されます Dispatchers.IO その処理に必要なコルーチンの数に応じて必要な分だけ共有スレッドプールを使用する DBの検索等、I/Oに負荷を

    Coroutines私的メモ2~Dispatchers, withContext, async/await~ - Qiita
  • 雰囲気で利用しないためのAndroidにおけるKotlin-Coroutineメモ - Qiita

    内容 自分がKotlin-Coroutinesを雰囲気で使っていたので調べたメモ。 Coroutineとは Coroutineとは軽量のThreadであり、非同期処理やノンブロッキング処理を行うためのアプローチの一つ。 軽量なスレッドとはどういうことか 以下のような違いがあるよう。 ※理解にはシステムアーキテクチャの知識が若干必要なので、ここは無視でいいかもしれない。 Threadはシステム的に以下の特性を持っている Thread一つにつきプロセス上に対象Thread専用のメモリリソースを確保する必要がある 実行Threadをシステムスケジューラが切り替えるのでオーバーヘッドが発生する Coroutine プロセス上のメモリを利用するので、個別にメモリを確保する必要がない 切り替えタイミングをプログラマが指定するので、オーバーヘッドが発生しない 登場人物一覧 Coroutine利用時の登場

    雰囲気で利用しないためのAndroidにおけるKotlin-Coroutineメモ - Qiita
  • LifecycleCoroutineScope を可視化しよう - Qiita

    はじめに LifecycleCoroutineScope は Coroutineに用意された、非同期処理の範囲を制限するための機能になります。 その名の通りライフサイクルに依存できるので、各メソッドがどのような範囲で挙動するか可視化してみました。 前提条件 Android Studio 3.5.1 で確認しました。 AndroidXは androidx.lifecycle:lifecycle-runtime-ktx:2.2.0-rc01 を利用しています。 確認する点 LifecycleCoroutineScope の 以下のメソッドについて確認します。(基となる launchも一緒に確認しています) launchWhenCreated launchWhenStarted launchWhenResumed launch 結果 マーク 意味

    LifecycleCoroutineScope を可視化しよう - Qiita
  • Kotlin Coroutine 入門1: 起動と suspend - Qiita

    (2020年9月22日) この記事は Zenn でも公開しています。 Kotlin 標準の並行プログラミング API である coroutine を理解1したのでまとめました。 家のガイド は包括的で(上から読めば)丁寧に書いてあるのですが、実際に自分が読んだ際には理解に結構苦労したので、少し別のアプローチでの入門になります。 (はじめにお断り: Coroutine と Promise, async/await, Rx, etc…) 並行処理の API といえば、ここ数年だと「Promise」や「Rx」のような計算結果を表すオブジェクトを then() や map() などでつなげていくスタイルか、「async/await」などと呼ばれるような計算結果オブジェクトを馴染みやすい形で書くスタイルが多いと思います。 coroutine の基を学習する際には、一旦これらは忘れてもらった方が良

    Kotlin Coroutine 入門1: 起動と suspend - Qiita
  • 1