0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

coroutine 簡単なまとめと参考ページ

Last updated at Posted at 2021-11-20

いいリソースがたくさんあります。
リソースを読むための簡単なまとめと、参考になったリソースをメモしておきます。

概要

コルーチンは軽量なスレッドのようなもの、とよく説明されていますが、個人的には、スレッドのラッパーというのがしっくりきます。
コルーチンを通してスレッドを操作することで、タスク管理を効率化できます。

kotlinコルーチンなどというように、コルーチンはkotlinの言語自体の機能です。

今までJavaを使ってきた我々からすると、時間がかかる処理をする時に、別スレッドに切り出すことはポピュラーな手法かと思います。
なぜなら、そうしないと、時間がかかるタスクがスレッドをブロッキングして、その後ろのタスクが長い間実行されないからです。
またこのスレッド切り出しの結果、コードが各スレッドに散在し、また処理自体も非同期的になるため、処理が追いにくくなる問題がありました。

kotlinのコルーチンは、Javaで我々が手動で行なっていたスレッド上でのタスク管理を、ほとんど代わりにやってくれます。
あるスレッド上で、長いタスク中の空き時間があれば(例えばデータベースからのレスポンスを待っている間など)、そのタスクが終わっていなくても、他の実行可能なタスクを自動で割り当てます。そうやって、スレッドが実際暇になっている時間を最小にします。
デフォルトで3,4種類のスレッドが内部的に用意されていて、ほぼその中で完結するので、新しいスレッドを作る必要がほぼなくなります。(必要ならコルーチン上で新スレッドの作成もできます。)
また、異なるスレッド上の処理でも同期的に1箇所にコードがかけます。

リソース

coroutine自体/androidでの使用

並列処理

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?