3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kotlin 1.3のCoroutineの使い方⑧(Globalのコルーチンってデーモンみたい)

Last updated at Posted at 2019-02-14

検証環境

この記事の内容は、以下の環境で検証しました。

  • Intellij IDEA ULTIMATE 2018.2
  • Kotlin 1.3.0
  • Gradle Projectで作成
  • GradleファイルはKotlinで記述(KotlinでDSL)

準備

詳細は下記の準備を参照してください。
https://qiita.com/naoi/items/8abf2cddfc2cb3802daa

Global coroutines are like daemon threads

前回に引き続き、公式サイトを読み解いていきます。

今回のタイトルは読んだままです。
早速読み進めます。

The following code launches a long-running coroutine in GlobalScope that prints "I'm sleeping" twice a second and then returns from the main function after some delay:

意訳込みですが

サンプルコードでは長期間動作するGlobalScopeのコルーチンを実行しています。1秒間に2回「I'm sleeping」が表示されます。

そのサンプルコードが以下です。

import kotlinx.coroutines.*

fun main() = runBlocking {
    //sampleStart
    GlobalScope.launch {
        repeat(1000) { i ->
            println("I'm sleeping $i ...")
            delay(500L)
        }
    }
    delay(1300L) // just quit after delay
//sampleEnd    
}

確かに、約2秒後ぐらいにメッセージを表示していますね。
もし、GlobalScopeのコルーチンをjoinすると1000実行されるまで動き続けるのでしょう。
タイトルどおり、デーモンみたいですね。

まとめ

GlobalScopeを利用するとデーモンみたいになるといった事がわかりました。

3
1
1

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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?