この記事は Google Cloud Translation APIを使用した自動翻訳です。
いくつかの文書は原文を読むのに良いかもしれません。
Kotlinコルーチンを使用すると、非同期コードを順番に書くことができます。つまり、スレッドの複雑さを処理することなく、コードが同期的に実行されるかのようにコードを書くことができます。
コルーチンはバージョン1.1でKotlinに追加され、非同期コードを書くための強力な方法を提供します。この記事では、コルーチンが何であるか、どのように機能するか、自分のコードでどのように使用するかを見てみましょう。
コルーチンは、非同期コードを順次作成する方法です。つまり、スレッドの複雑さを処理することなく、コードが同期的に実行されるかのようにコードを書くことができます。
コルーチンはバージョン1.1でKotlinに追加され、非同期コードを書くための強力な方法を提供します。この記事では、コルーチンが何であるか、どのように機能するか、自分のコードでどのように使用するかを見てみましょう。
##コルーチンはどのように機能しますか?
コルーチンは中断して再開できる軽量スレッドです。これは、コルーチンが実行中に中断され、後で再開される可能性があることを意味します。
コルーチンは次のように構成されます。
コルーチンが作成されると、親コルーチンが提供されます。この親コルーチンは、子コルーチンの実行を管理します。子コルーチンは、親コルーチンが再開するまで再開できません。
コルーチンのコンテキストは寿命を決定します。コルーチンをキャンセルすると終了することがあります。コルーチンは、実行が完了したことを意味する完了することもできます。
suspend関数を使用してコルーチンを一時停止できます。この関数はサスペンド関数を引数として使用します。 suspend 関数が呼び出されると、コルーチンが一時停止され、suspend 関数が実行されます。
再開機能は、コルーチンを再開するために使用されます。この関数は再開関数を引数として使用します。再開関数が呼び出されると、コルーチンが再開され、再開関数が実行されます。
コルーチンの使用は簡単です。コードに次の行を追加するだけです。
import kotlinx.coroutines.*
この行はKotlinからコルーチンライブラリを取得します。
これで、コードでコルーチンを使用できるようになります。たとえば、次のコードはコルーチンを作成して一時停止します。
import kotlinx.coroutines.*
fun main() {
val parent = CoroutineScope(Job())
val child = parent.launch {
println("Child coroutine")
delay(1000L)
println("Child coroutine after delay")
}
println("Main coroutine")
child.suspend()
}
このコードでは、起動機能を使用してコルーチンを作成します。この関数は新しいコルーチンを作成し、それへの参照を返します。この参照をサブ変数に保存します。
次に suspend 関数を使用して子コルーチンを一時停止します。この関数はサスペンド関数を引数として使用します。この場合、一時停止機能は遅延です。この関数は、指定された時間(1000ミリ秒)でコルーチンを一時停止します。
このコードを実行すると、次の出力が表示されます。
メインコルーチン
Child coroutine
子コルーチンは、遅延関数が呼び出された後に一時停止します。メインコルーチンは引き続き実行され、「メインコルーチン」を出力します。
再開機能を使用して子コルーチンを再開できます。
import kotlinx.coroutines.*
fun main() {
val parent = CoroutineScope(Job())
val child = parent.launch {
println("Child coroutine")
delay(1000L)
println("Child coroutine after delay")
}
println("Main coroutine")
child.suspend()
child.resume()
}
このコードでは、 resume 関数を使用して子コルーチンを再起動します。この関数は再開関数を引数として使用します。この場合、再開機能は遅延です。この関数は、指定された時間(1000ミリ秒)でコルーチンを一時停止します。
このコードを実行すると、次の出力が表示されます。
メインコルーチン
Child coroutine
Child coroutine after delay
子コルーチンは、遅延関数が呼び出された後に再開されます。メインコルーチンは引き続き実行され、「メインコルーチン」を出力します。
キャンセル機能を使用してコルーチンをキャンセルできます。
import kotlinx.coroutines.*
fun main() {
val parent = CoroutineScope(Job())
val child = parent.launch {
println("Child coroutine")
delay(1000L)
println("Child coroutine after delay")
}
println("Main coroutine")
child.cancel()
}
このコードでは、キャンセル機能を使用して子コルーチンをキャンセルします。この関数はサスペンド関数を引数として使用します。この場合、一時停止機能は遅延です。この関数は、指定された時間(1000ミリ秒)でコルーチンを一時停止します。
このコードを実行すると、次の出力が表示されます。
メインコルーチン
Child coroutine
遅延関数が呼び出された後、子コルーチンはキャンセルされます。メインコルーチンは引き続き実行され、「メインコルーチン」を出力します。
##結論
この記事では、Kotlinのコルーチンについて説明しました。私たちはそれらが何であるか、どのように機能するのか、そして自分のコードでどのように使用するのかを見ました。コルーチンは非同期コードを書くための強力な方法です。