天天看點

Kotlin 的協程本質到底什麼建立協程的方式有五種:

重新整理三觀,還是學學GO 語言吧

幾乎就是用阻塞的寫法來完成非阻塞的任務。

Kotlin-JVM中所謂的協程是假協程

Kotlin-JVM中所謂的協程挂起,就是開啟了一個子線程去執行任務

對于Java來說,不管你用什麼方法,隻要你沒有魔改JVM,那麼最終你代碼裡start幾個線程,作業系統就會建立幾個線程,是1比1的關系。

Kotlin官網中那個建立10w個Kotlin協程沒有oom的例子其實有誤導性,本質上那10w個Kotlin協程就是10w個并發任務僅此而已,他下面運作的就是一個單線程的線程池。你往一個線程池裡面丢多少個任務都不會OOM的(前提是你的線程池建立的時候設定了對應的拒絕政策,否則無界隊列下,任務過多一定會OOM),因為在運作的始終是那幾個線程。

建立協程的方式有五種:

GlobalScope.launch{}

launch{}

runBlocking{}

coroutineScope{}

async{}

參考 https://www.cnblogs.com/vivotech/p/12175897.htm

繼續閱讀