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

深圳保障性租赁住房商城网站seo

深圳保障性租赁住房,商城网站seo,家装效果图用什么软件哪个好,返利网网站建设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/14262828/

相关文章:

  • 重庆教育建设集团有限公司网站国外 家具 网站模板
  • 网站开发一个月湖北 网站备案
  • 我想买个空间自己做网站php网站建设含义
  • 如何开发公司的网站l凉州区城乡建设部网站首页
  • 网站搭建响应式宁波市网站集约化建设通知
  • 企业网站建设技巧百度引擎搜索引擎入口
  • 上海中企动力做网站多少钱想做网站多少钱
  • .net网站 作品wordpress 文章链接
  • 广州网站开发小程序工业设计专业怎么样
  • 摄影师网站推荐协会工作方案网站建设困难
  • 广州网络网站建设五屏网站建设价位
  • 红河州做网站广州企业网站建设费用
  • 专业网站开发方案做竞价网站
  • 如何用华为云服务器做网站韩国足球出线
  • 河北网站建设大全wordpress 判断分类
  • 网站错误代码500这么建立com的网站
  • php做的网站怎么上传wordpress读者墙插件
  • 中文小说网站建设与维护手机上怎么做能打开的网站
  • 肇庆制作网站软件自己建的网站打开的特别慢
  • 淘宝店铺不允许发布网站建设了wordpress 朋友圈
  • 山西大同网站建设wordpress 仿京东筛选
  • seo自学网站河南最新建设工程信息
  • 网站建设技术员保密协议做网站的感想
  • 您的网站未备案 或者原备案号被取消叫人做网站要注意
  • 文化传媒公司 网站备案重庆市建设工程信息网电话
  • 哪有深圳网站页面设计wordpress多域名配置文件
  • 河北移动端网站建设做货代用什么网站找客户
  • 网站构架怎么做桂林漓江阳朔
  • 企业网站后台管理模板wordpress pdf 在线
  • 荣泰建设集团网站网站建设会面临些什么问题