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

张家界网站嘉兴网站seo外包

张家界网站,嘉兴网站seo外包,邢台市旅游景点排名前十,wordpress上传视频黑屏Kotlin协程 背景定义实践GlobalScope.launchrunBlocking业务实践 背景 在项目实践过程中#xff0c;笔者发现很多异步或者耗时的操作#xff0c;都使用了Kotlin中的协程#xff0c;所以特地研究了一番。 定义 关于协程#xff08;Coroutine#xff09;#xff0c;其实… Kotlin协程 背景定义实践GlobalScope.launchrunBlocking业务实践 背景 在项目实践过程中笔者发现很多异步或者耗时的操作都使用了Kotlin中的协程所以特地研究了一番。 定义 关于协程Coroutine其实更多的应该是一种并发设计模式。与传统的线程或进程相比协程更加轻量级因为它运行在线程之上在执行过程中可以主动地暂停并在需要时恢复执行。而且这些切换操作是在操作系统中的用户态完成的。 实践 引入maven依赖 dependencygroupIdorg.jetbrains.kotlinx/groupIdartifactIdkotlinx-coroutines-core/artifactId /dependency两种启动模式 runBlockingGlobalScope.launch GlobalScope.launch 在 GlobalScope.launch 中启动的协程不会阻塞主线程。主线程会继续执行而协程会在后台执行。在上述例子中为了演示效果使用了 Thread.sleep(2000) 来模拟等待协程执行。 其中launch 是一个函数用于创建协程并将其函数主体的执行分派给相应的调度程序。 fun main() {// 启动协程GlobalScope.launch {delay(2000) // 挂起协程模拟异步操作println(World!)}println(Hello,)Thread.sleep(4000) // 阻塞主线程等待协程执行完毕 }runBlocking 在 runBlocking 中启动的协程会阻塞当前线程直到所有启动的协程都执行完毕。 fun main() runBlocking {// 在 runBlocking 作用域内启动协程launch {// 协程代码println(Inside coroutine)}// 主线程继续执行println(Outside coroutine)// 阻塞主线程等待协程执行完毕 }业务实践 Dispatchers.IO Kotlin提供的协程调度方式指示此协程应在为 I/O 操作预留的线程上执行适合在主线程之外执行磁盘或网络 I/O。Dispatchers.Main 使用此调度程序可在主线程上运行协程。在官方文档介绍中主要用于安卓开发中与界面交互和执行快速工作。Dispatchers.Default 适合在主线程之外执行占用大量 CPU 资源的工作。 private fun sendRefundHttpPost(weChatPayRefundUrl: String, xmlRequestData: String): MapString, String runBlocking {// 启用协程发送退款操作returnrunBlocking withContext(Dispatchers.IO) {val responseXmlStr careWeChatHttps.postXmlForString(weChatPayRefundUrl, xmlRequestData)WXPayUtil.xmlToMap(responseXmlStr)}}private fun getSchoolDate(allTeacherIds: SetString): WildSchoolData runBlocking {// 涉及统计的allTeacherIds 数量比较大, 创建异步任务去操作val elements allTeacherIds.chunked(60).map {async(Dispatchers.Default) {val totalCount teacherPerformanceServiceApi.getTeachersTotalPerformanceCount(it).performanceCountval currentWeekCount teacherPerformanceServiceApi.getTeachersCurrentWeekPerformanceCountByByRangeTime(it).performanceCountWildSchoolData(totalCount, currentWeekCount)}}// 调用await等待异步任务结束returnrunBlocking WildSchoolData(elements.awaitAll().sumBy { it.totalCount }, elements.awaitAll().sumBy { it.currentWeekCount })}fun savePoint(pagePointVo: PagePointVo): Any {// 启用协程执行一个操作流水的插入, 不影响其他操作GlobalScope.launch(context Dispatchers.IO) {val pagePoint PagePoint().apply {this.schoolId pagePointVo.schoolIdthis.userId pagePointVo.userIdthis.userRole pagePointVo.userRolethis.moduleKey pagePointVo.moduleKeythis.eventId pagePointVo.eventIdthis.clickTime Date()}pagePointMapper.insert(pagePoint)}// 其他操作}
http://www.hkea.cn/news/14569962/

相关文章:

  • frontpage做网站怎么样手机网站刷排名
  • 做教育的需要做个网站吗wordpress如何看主题
  • 学校网站怎么做优化微网站模板源代码
  • 上海做网站品牌公司有哪些西安网站建站优化
  • 中建西部建设北方有限公司网站余姚做网站
  • 怎么做导购网站已经有域名 怎么做网站
  • 怎么用织梦做本地网站网站建设课程设计心得体会
  • 做seo网站诊断书怎么做中国互联网协会官方网站
  • 网站架构图贸易网站模板
  • 天津模板建站代理施工企业质量管理制度
  • seo视频网页入口网站推广卖手表的网站
  • asp access 手机站 用于做微网站网站建设常规自适应
  • 安徽省建设行业质量与安全协会网站网站图片代码怎么做
  • 红色网站建设创客联盟网站建设
  • 求人做网站的网站泰州网站建设与网页制作
  • 正规品牌网站设计品牌个人网站的留言板数据库怎么做
  • 想要做网站网站流量少怎么办
  • 做动态影集的网站漳州企业网站开发
  • 如何弄网站网页制作工具中可进行网页内容定位
  • 云南档案馆网站建设资金wordpress怎么播放视频教程
  • 自助建站比较好的招聘网站分析报告怎么做
  • 浙江省建设执业资格中心网站微信网页版本
  • 大港天津网站建设凡总创业网站
  • 住房和城乡建设局部网站网络营销哪些公司好做呢
  • wordpress手机建站路北网站制作
  • 做网站推淘宝客赣州新闻综合频道回放
  • dedecms网站开发环境做网站需要多少屏
  • 赤峰建设淘宝网站网站架构设计师薪资水平
  • 广州番禺区网站建设渭南网站制作学校
  • 网站上怎么引用视频徐州h5建站模板