当前位置: 首页 > news >正文

达人设计网官方网站seo加盟代理

达人设计网官方网站,seo加盟代理,wordpress 用户上传文件,百度排名软件一、概念 又叫选择表达式#xff0c;是一个挂起函数#xff0c;可以同时等待多个挂起结果#xff0c;只取用最快恢复的那个值#xff08;即多种方式获取数据#xff0c;哪个更快返回结果就用哪个#xff09;。 同时到达 select() 会优先选择先写子表达式#xff0c;想随…一、概念 又叫选择表达式是一个挂起函数可以同时等待多个挂起结果只取用最快恢复的那个值即多种方式获取数据哪个更快返回结果就用哪个。         同时到达 select() 会优先选择先写子表达式想随机公平的话使用 selectUnbiased() 替换 。         能被选择的都是 SelectClauseN 函数类型。 public suspend inline fun R select(crossinline builder: SelectBuilderR.() - Unit): R  public sealed interface SelectBuilderin R {         public operator fun SelectClause0.invoke(block: suspend () - R)         public operator fun Q SelectClause1Q.invoke(block: suspend (Q) - R)         public operator fun P, Q SelectClause2P, Q.invoke(param: P, block: suspend (Q) - R)         public operator fun P, Q SelectClause2P?, Q.invoke(block: suspend (Q) - R): Unit invoke(null, block) } SelectClause0对应事件没有返回值。例如 job.onJoin。SelectClause1对应事件有返回值。例如 deffered.onAwait 和 channel.onReceive。SelectClause2对应事件有返回值。此外还需要一个额外的参数例如 Channel.onSend() 有两个参数第一个是 Channel 数据类型的值表示即将发送的值第二个是发送成功时的回调函数。 二、使用 在使用 async() 启动协程的返回类型 Deferred 中定义了 SelectClause1 函数类型的变量 onAwait其作用和 await() 一样只是当其在 select() 中作为子语句时具有“同时等待看谁最先返回”的效果。同理其它。 2.1 复用多个 job.onJoin fun main() runBlockingUnit {val job1 launch {delay(100)println(job 1)}val job2 launch {delay(10)println(job 2)}select {job1.onJoin { println(job 1 更快) }job2.onJoin { println(job 2 更快) }}delay(1000) } //打印 //job 2 //job 2 更快 //job 1 2.2 复用多个 deffered.onAwait public interface Deferredout T : Job {         public val onAwait: SelectClause1T        //等效await() fun main() runBlocking {val defferedCache async {delay(10)Cache}val defferedLocal async {delay(100)Local}val defferedRemote async {delay(1000)Remote}val result select {defferedCache.onAwait { println(最快的是$it) }defferedLocal.onAwait { println(最快的是$it) }defferedRemote.onAwait { println(最快的是$it) }}delay(2000)println(result) //打印最快的是Cache } 2.3 复用多个 channel.onReceive public interface SendChannelin E {         public val onSend: SelectClause2E, SendChannelE        //等效send() } public interface ReceiveChannelout E {         public val onReceive: SelectClause1E        //等效receive()         public suspend fun receiveCatching(): ChannelResultE        //等效receiveCatching() } //select() 中的 onReceive() 在已经关闭的通道执行会发生失败并导致相应的 select() 抛出异常使用 onReceiveCatching() 在关闭通道时执行特定操作。 suspend fun getDataFromLocal() withContext(Dispatchers.IO) { Local } suspend fun getDataFromRemote() withContext(Dispatchers.IO) { Remote }OptIn(ExperimentalCoroutinesApi::class) fun main() runBlocking {val produceLocal produce { send(getDataFromLocal()) }val produceRemote produce { send(getDataFromRemote()) }val result select {produceLocal.onReceive { it }produceRemote.onReceive { it }} // val result select { // produceLocal.onReceiveCatching { it.getOrNull() ?: Channel已关闭produceLocal } // produceRemote.onReceiveCatching { it.getOrNull() ?: Channel已关闭produceRemote } // }println(结果更快的是$result) }
http://www.w-s-a.com/news/611698/

相关文章:

  • 网站公司怎么做的网站建设论文二稿
  • 网站建设服务商都有哪些html项目答辩
  • 网站上传到万网主机wordpress视频防盗链
  • 西安建设商城类网站广告设计公司文案
  • 如何建设好高校网站麻辣烫配方教授网站怎么做
  • 宁波网站建设计品牌推广策略分析
  • 网站自建设需要买什么时候开始深圳市建筑市场信息公开平台
  • 平台营销型网站建设小城镇建设的网站文献
  • 燕郊个人做网站小企业网站模板
  • 网站ip需要备案新开河街做网站公司
  • 网站定制设计方案wordpress批量传图片
  • 做外贸兼职的网站设计福州网站开发私人
  • 金华建站模板目前国内有哪些网站做家具回收
  • 个人做网站还是公众号赚钱好部门网站建设和维护
  • 系列图标设计网站推荐建商城网站
  • 中牟建设工程信息网站黑龙江 哈尔滨
  • 网站设计基本结构wap自助建论坛网站
  • 专业番禺网站建设爱做网站外国
  • 深圳罗湖网站设计公司价格制作网站的公司办什么营业执照
  • 长清网站建设价格群辉NAS搭建wordpress
  • 变更股东怎样在工商网站做公示网站建设和网站优化哪个更重要
  • 西安手机网站python网站开发效率
  • 深圳建站的公司羽毛球赛事2022直播
  • j2ee网站开发搜索推广的流程
  • 网站目录结构图虚拟主机如何安装WordPress
  • 信产部网站备案保定软件开发网站制作
  • 东莞网站设计定做东莞网站建设最牛
  • 网站开发的软件天猫的网站导航怎么做的
  • 做链接哪个网站好网站建设平台方案设计
  • 资质升级业绩备案在哪个网站做网站建设方案费用预算