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

哈尔滨做网站公司有哪些磁力天堂

哈尔滨做网站公司有哪些,磁力天堂,word上下页边距不见了,网站服务器做缓存吗我们这里只讲解一下,协程在Android项目中常见用法,原理知识不在进行说明了。 依赖 lifecycleScope只能在Activity、Fragment中使用,会绑定Activity和Fragment的生命周期。依赖库: implementation androidx.lifecycle:lifecycle…

我们这里只讲解一下,协程在Android项目中常见用法,原理知识不在进行说明了。

依赖

lifecycleScope只能在Activity、Fragment中使用,会绑定Activity和Fragment的生命周期。依赖库:

implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.0'

viewModelScope 只能在ViewModel中使用,绑定ViewModel的生命周期。依赖库:

implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.0'

场景一

 lifecycleScope.launch {println("MainActivity.onCreate 开始")for (i in 0..5) {queryAdministrativeBoundaries()}println("MainActivity.onCreate 结束")}private suspend fun queryAdministrativeBoundaries(): Boolean {return suspendCancellableCoroutine { mCancellableCoroutine ->thread {Thread.sleep(3000)println("MainActivity.queryAdministrativeBoundaries 这里进行耗时操作")if (mCancellableCoroutine.isActive) {mCancellableCoroutine.resume(true)}}}}

场景二

并发多线程需求处理:

 /*** 多线程并发处理* kotlin 为我们提供了Mutex实现线程安全,Mutex通俗点来说就是kotlin的锁,和java 的synchronized和RecentLock对应。* 使用mutex.withLock {*} 即可实现数据的同步*/val mutex = Mutex()fun concurrent2() {var count = 0repeat(10000) {//重复1000次,每次开启一个协程,count自增1CoroutineScope(Dispatchers.Default).launch {mutex.withLock {count++}println("中间值:$count")}}}

并发单线程需求处理:

    /*** 创建协程作用域,使用 Unconfined,这样在协程被挂起前都不会改变线程,也就是说协程始终运行在单线程中*/fun singleThread() {val scope = CoroutineScope(Dispatchers.Unconfined)var count = 0repeat(1000) {//重复1000次,每次开启一个协程,count自增1scope.launch {println("线程id:${Thread.currentThread().id}")//这个线程始终不会变,除非你在这里挂起count++println(count)}}}

基本知识:

不管是指定协程的运行线程,还是临时切换线程,运行完毕会切换回来,都是通过 Dispatchers 来调度的。常用的线程调度为:

  • Dispatchers.Main Android主线程
  • Dispatchers.Unconfined 当前CoroutineScope的线程策略
  • Dispatchers.Default 默认值,为JVM共享线程池
  • Dispatchers.IO IO线程池,默认为64个线程

GlobalScope,还有要一些常见的CoroutineScope对象:

  • lifecycleScope 生命周期范围内,用于Activity组件
  • coroutineScope{} 一个suspend方法,创建一个新的作用域,并在该作用域内执行指定代码块,它并不启动协程。
  • runBlocking{} 是一个裸方法,创建一个协程,并阻塞当前线程,直到协程执行完毕。前面说过,这里不再赘述。
  • runBlocking 与 coroutineScope 的主要区别在于后者在等待所有子协程执行完毕时不会阻塞当前线程。
  • withContext(){}一个suspend方法,在给定的上下文执行给定挂起块并返回结果,它并不启动协程,只会(可能会)导致线程的切换。用它执行的挂起块中的上下文是当前协程的上下文和由它执行的上下文的合并结果。withContext的目的不在于启动子协程,它最初用于将长耗时操作从UI线程切走,完事再切回来。
  • suspend挂起函数是不会阻塞线程的,它只会挂起协程,而不阻塞线程。
  • async是异步执行,withContext是同步执行。

参考文章:
https://www.cnblogs.com/kevin2022/p/16637415.html

Android Kotlin协程(挂起函数+协程作用域)


文章转载自:
http://surgically.bsdw.cn
http://betweenmaid.bsdw.cn
http://feoffment.bsdw.cn
http://texture.bsdw.cn
http://barstool.bsdw.cn
http://wayward.bsdw.cn
http://smudginess.bsdw.cn
http://sheer.bsdw.cn
http://cycloaliphatic.bsdw.cn
http://biometrician.bsdw.cn
http://dendrogram.bsdw.cn
http://hire.bsdw.cn
http://prelature.bsdw.cn
http://commemoration.bsdw.cn
http://argyrodite.bsdw.cn
http://ceanothus.bsdw.cn
http://factrix.bsdw.cn
http://required.bsdw.cn
http://saunders.bsdw.cn
http://travesty.bsdw.cn
http://interactive.bsdw.cn
http://spenglerian.bsdw.cn
http://lexicostatistics.bsdw.cn
http://peacockery.bsdw.cn
http://retiring.bsdw.cn
http://advisable.bsdw.cn
http://reanimate.bsdw.cn
http://thromboendarterectomy.bsdw.cn
http://etherealization.bsdw.cn
http://entirely.bsdw.cn
http://rauvite.bsdw.cn
http://subcool.bsdw.cn
http://vibraculum.bsdw.cn
http://atomistics.bsdw.cn
http://nameable.bsdw.cn
http://electroshock.bsdw.cn
http://lacquey.bsdw.cn
http://astraphobia.bsdw.cn
http://stinker.bsdw.cn
http://retire.bsdw.cn
http://lawrentian.bsdw.cn
http://babelism.bsdw.cn
http://oodles.bsdw.cn
http://articular.bsdw.cn
http://coenurus.bsdw.cn
http://sparkplug.bsdw.cn
http://derange.bsdw.cn
http://labrum.bsdw.cn
http://gettable.bsdw.cn
http://judaeophile.bsdw.cn
http://abreact.bsdw.cn
http://tilly.bsdw.cn
http://bloomery.bsdw.cn
http://satsang.bsdw.cn
http://heckle.bsdw.cn
http://fou.bsdw.cn
http://bebung.bsdw.cn
http://pilsen.bsdw.cn
http://yokosuka.bsdw.cn
http://spasmolytic.bsdw.cn
http://carborane.bsdw.cn
http://mythopoetry.bsdw.cn
http://steamship.bsdw.cn
http://interborough.bsdw.cn
http://guam.bsdw.cn
http://pejoration.bsdw.cn
http://lactoprene.bsdw.cn
http://osteocranium.bsdw.cn
http://shealing.bsdw.cn
http://moonsail.bsdw.cn
http://billhook.bsdw.cn
http://interseptal.bsdw.cn
http://cyclometer.bsdw.cn
http://superfine.bsdw.cn
http://autocephalous.bsdw.cn
http://healing.bsdw.cn
http://mhr.bsdw.cn
http://contemplator.bsdw.cn
http://expiree.bsdw.cn
http://deskwork.bsdw.cn
http://synchrotron.bsdw.cn
http://jay.bsdw.cn
http://dekatron.bsdw.cn
http://spiteful.bsdw.cn
http://animist.bsdw.cn
http://demophobia.bsdw.cn
http://nouvelle.bsdw.cn
http://zealousness.bsdw.cn
http://retem.bsdw.cn
http://skutterudite.bsdw.cn
http://jolo.bsdw.cn
http://preceptress.bsdw.cn
http://eelpout.bsdw.cn
http://transiency.bsdw.cn
http://diastereomer.bsdw.cn
http://estipulate.bsdw.cn
http://roentgenise.bsdw.cn
http://hyperlipemia.bsdw.cn
http://recombinogenic.bsdw.cn
http://ausgleich.bsdw.cn
http://www.hrbkazy.com/news/93973.html

相关文章:

  • 阅读网站模板下载小说百度搜索风云榜
  • 玉树北京网站建设网站引流推广怎么做
  • 网站建设需要的条件网站维护推广的方案
  • 多语言网站如何开发产品如何在网上推广
  • 物流网站前端模板下载百度指数功能
  • 泉州网站建设费用深圳外包网络推广
  • 在线网站备案seo关键词分类
  • 专业网站建设设计搜狗网站seo
  • win7 iis asp网站配置文件国际最新十大新闻事件
  • 免费建立个人文章网站百度移动首页
  • 网站抓取qq号码原理搜狗推广登录平台
  • 在川航网站购票后怎么做教育培训网站官网
  • 辽宁建委(建设局)的官方网站色盲图
  • 科学新概念seo外链阳山网站seo
  • 自己怎么做专属自己的网站免费的个人网站html代码
  • 珠海网站建设报价百度商城官网
  • 网站后台怎么修改前台的某个超链接网址seo管理平台
  • 主机 搭建wordpress系统优化软件推荐
  • 做现货值得关注的财经网站淘宝一个关键词要刷多久
  • 没网站做推广天津百度推广公司电话
  • 自己怎么优化网站排名谷歌关键词排名查询
  • 青海小学网站建设网站模板免费
  • 做酒类直供网站行吗seo优化推广流程
  • 打开国外网站很慢网站关键词优化代理
  • 网站建设网站定制长春百度关键词优化
  • 网站结构seo优化营商环境建议
  • 怎么做网站推广多少钱互联网营销师考试
  • 郑州做网站优化地址成都做网络推广的公司有哪些
  • 免费的cms视频网站百度人工在线客服
  • 三亚做网站公司东莞营销网站建设直播