国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

kotlin協(xié)程async與await

這篇具有很好參考價值的文章主要介紹了kotlin協(xié)程async與await。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

kotlin協(xié)程async與await

import kotlinx.coroutines.*
import kotlin.system.measureTimeMillis

fun main() {
    val time = measureTimeMillis {
        runBlocking {
            /**
             * async 是 CoroutineScope 擴展函數,async 和 launch 的區(qū)別在于async 可以返回協(xié)程結果,而 launch 不能。
             * async默認值 CoroutineStart.DEFAULT 協(xié)程在聲明同時就被啟動(實際上還需被調度執(zhí)行,但可認為是立即就執(zhí)行)
             * CoroutineStart.LAZY 不主動啟動協(xié)程,直到主動調用async.await()或async.satrt()后才啟動(懶加載模式)
             * a.await() + b.await()導致兩個協(xié)程順序執(zhí)行
             */

            val a = async(start = CoroutineStart.LAZY) {
                delay(2000)
                1
            }

            val b = async(start = CoroutineStart.LAZY) {
                delay(3000)
                2
            }

            /* 打破CoroutineStart.LAZY懶加載,協(xié)程立即投入執(zhí)行。
            a.start()
            b.start()
             */
            println(a.await() + b.await())
        }
    }

    println(time)
}

輸出:

3
3072

https://zhangphil.blog.csdn.net/article/details/129265638https://zhangphil.blog.csdn.net/article/details/129265638

kotlin協(xié)程、線程切換,函數方法委托_zhangphil的博客-CSDN博客runBlocking 內部啟動的3個協(xié)程做耗時操作,從輸出可以看到3個協(xié)程交叉并發(fā)執(zhí)行,runBlocking 會等到3個協(xié)程執(zhí)行結束后才退出,輸出結果有明確先后順序。一般編程的技法,比如,在Android中,假設在主線程中實現(xiàn)了一個函數,但該函數是耗時操作,毫無疑問,需要將這個函數的實現(xiàn)切入非主線程中操作,那么可以設計一種托管的函數,在托管的函數里面干臟活,處理完成后,把結果拋到主線程。結果1-a: 5 - tid:22。結果1-b: 5 - tid:24。結果2-a: 9 - tid:22。https://blog.csdn.net/zhangphil/article/details/130161705

https://zhangphil.blog.csdn.net/article/details/129250518https://zhangphil.blog.csdn.net/article/details/129250518文章來源地址http://www.zghlxwxcb.cn/news/detail-454010.html

到了這里,關于kotlin協(xié)程async與await的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Promise、Async/Await 詳解

    ? ? ? ? Promise是抽象異步處理對象以及對其進行各種操作的組件。Promise本身是同步的立即執(zhí)行函數解決異步回調的問題, 當調用 resolve 或 reject 回調函數進行處理的時候, 是異步操作, 會先執(zhí)行.then/catch等,當主棧完成后,才會去調用執(zhí)行resolve/reject中存放的方法。 ? ? ?

    2024年02月14日
    瀏覽(33)
  • Async In C#5.0(async/await)學習筆記

    Async In C#5.0(async/await)學習筆記

    此文為Async in C#5.0學習筆記 方式一:基于事件的異步Event-based Asynchronous Pattern (EAP). 方式二:基于IAsyncResult接口的異步 方式三:回調 方式四:使用Task,尤其是TaskT 共同的缺陷:必須將方法分為兩部分 亂如麻的遞歸 async/await 注意,下面這樣操作可能會有隱患,當firstTask有異常時

    2024年01月22日
    瀏覽(24)
  • 【C#】async和await 續(xù)

    【C#】async和await 續(xù)

    在文章《async和await》中,我們觀察到了一下客觀的規(guī)律,但是沒有講到本質,而且還遺留了一個問題: 這篇文章中,我們繼續(xù)看看這個問題如何解決! 我們再看看之前寫的代碼: 當時問題是,為啥 Task.Factory.StartNew 可以看到異步效果,而Task.Run中卻是同步效果。 那其實是因為

    2024年02月15日
    瀏覽(23)
  • async/await 的理解和用法

    async放在函數前的一個修飾符,函數會默認返回一個Promise對象的resolve的值 1、await也是一個修飾符, 只能放在async定義的函數內 ,可以理解為 等待 2、await 修飾的是Promise對象: 獲取Promise中返回的內容 (resolve或reject的參數), 且取到值后語句才會往下執(zhí)行; 3、如果不是P

    2024年02月01日
    瀏覽(26)
  • async_await 源碼分析

    async_await 源碼分析

    這篇文章主要是分析 async/await 這個語法糖,分析一下 async 和 await 是如何做到異步的。首先,我先拋出兩個問題,各位可以先想一下。 await 之后的方法是何時執(zhí)行,如何執(zhí)行的? 為什么 await 之后的代碼會在不同的線程執(zhí)行? 要想知道 async/await 是怎么運行的,需要先寫一個

    2024年02月12日
    瀏覽(22)
  • promise及異步編程async await

    promise及異步編程async await

    ECMAScript 6 新增了正式的 Promise(期約)引用類型,支持優(yōu)雅地定義和組織異步邏輯。接下來幾個版本增加了使用 async 和 await 定義異步函數的機制 JavaScript 是單線程事件循環(huán)模型。異步行為是為了優(yōu)化因計算量大而時間長的操作,只要你不想為等待某個異步操作而阻塞

    2024年02月04日
    瀏覽(24)
  • async和await的的基本使用

    說明: await’ expressions are only allowed within async functions and at the top levels of modules.ts(1308)

    2024年02月13日
    瀏覽(29)
  • python中的async和await用法

    前言:此篇文章是在文心一言的輔助下完成的。 同步操作 :同步操作是指所有的操作都完成后,才返回給用戶結果。當一個任務發(fā)出請求并等待響應時,如果未收到響應,該任務就會被阻塞,并一直等待直到收到響應為止。例如,在一個同步過程中,如果有一個函數需要較

    2024年04月27日
    瀏覽(27)
  • async/await 與console(C#)

    上一篇async/await 致WPF卡死問題(https://www.cnblogs.com/stephen2023/p/17725159.html),介紹主線程阻塞,async/await導致卡死問題,同樣的代碼在console下卻并不會出現(xiàn)卡死。 并且await后的任務也是由“新線程”執(zhí)行的,并非主線程執(zhí)行。 對于如下含await的代碼 可以類比于: WPF與Console不同

    2024年02月08日
    瀏覽(19)
  • async/await實現(xiàn)Promise.all()

    ??個人主頁: 不叫貓先生 ???♂?作者簡介:專注于前端領域各種技術,熱衷分享,期待你的關注。 ??系列專欄:vue3從入門到精通 ??個人簽名:不破不立 Promise.all() 方法接收一個 promise 的 iterable 類型(注:Array,Map,Set 都屬于 ES6 的 iterable 類型)的輸入,并且 只返回

    2024年01月18日
    瀏覽(45)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包