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

手机网站做淘宝客班级优化大师下载安装最新版

手机网站做淘宝客,班级优化大师下载安装最新版,个人网站名字可以用哪些,网站建设的技巧一、概念 又叫选择表达式#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.hkea.cn/news/14323731/

相关文章:

  • 鞍山网站建设企业微信小商店坑死人
  • 开发网站建设公司wordpress 格子主题
  • 韩国网站建站多种语言网站建设
  • 青岛做网站公司有哪些注册网站填写不了地区
  • 如何后台修改网站联系人wordpress文章与页面
  • 石家庄制作公司网站wordpress 自建页面
  • 简单aspx网站开发个人 可以备案做分类信息网站吗
  • 正能量网站网址大全企业所得税2022年税率
  • 长沙网站开发那家好网站二次开发教程
  • php网站开发主要做什么网站怎么做右上角消息提醒
  • 网站建设优化排名wordpress 编辑主题
  • 湖南备案网站建设方案书互联网技术论文
  • com网站是用什么做的手机网站如何建立
  • 无锡网站建设推广公司网站建设总结体会
  • 网站编辑电子商务网站运营专员网站去掉后缀html
  • 贪玩原始传奇官方网站合肥公司网站搭建服务商
  • 石家庄网站制作网页陕西省安康市建设局网站
  • 梧州网站制作公司公司网站建设费用入账
  • 做app 的模板下载网站有哪些内容建了qq群 如何快速推广
  • 苏州网站模板建站call_user_func_array() wordpress
  • idc自动续费网站源码店铺设计图纸及效果图大全
  • 义乌公司做网站南沙网站建设公司
  • 网站建设销售话女生学计算机难吗
  • iis可以做php网站吗php网站收录
  • 黑龙江 网站开发wordpress音乐播放插件
  • 网站游戏网站怎么做网页制作素材照片和文案
  • php网站建设是什么意思去网站做dnf代练要押金吗
  • 做电商网站需要注意哪些怎么wordpress
  • 永康物流网站开发平台南京网站开发南京乐识专心
  • 全网营销一站式推广农产品网站建设投标书