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

网站改版方案pptwordpress 后台进不去_如何替换主题

网站改版方案ppt,wordpress 后台进不去_如何替换主题,虚拟主机多网站,wordpress版块插件Kotlin协程#xff0c;好用#xff0c;但是上限挺高的#xff0c;我一直感觉自己就处于会用#xff0c;知其然不知其所以然的地步。 做点小总结#xff0c;比较浅显。后面自己再继续补充吧。 一、什么是协程#xff1f; Kotlin 协程是一种轻量级的并发编程方式#x…Kotlin协程好用但是上限挺高的我一直感觉自己就处于会用知其然不知其所以然的地步。 做点小总结比较浅显。后面自己再继续补充吧。 一、什么是协程 Kotlin 协程是一种轻量级的并发编程方式用于简化异步代码的编写。它允许你编写看似同步的代码来处理异步任务使代码更加简洁、可读且易于维护。协程广泛应用于 Android 开发中用于网络请求、数据库操作等需要异步执行的任务。 协程是一种语法糖 协程的出现是来解决异步问题的但它本身却不提供异步的能力协程某种意义上更像是一种语法糖它为我们隐藏了异步调用和回调的细节让我们更关注于业务逻辑的实现。一句话概括协程是一种轻量级的方便操作异步代码的语法糖而它本身不提供异步能力。 二、Kotlin 协程的核心概念 协程 (Coroutine)一种轻量级的线程。协程可以在不阻塞主线程的情况下挂起和恢复使得代码能够异步执行而不增加线程开销。协程在 Kotlin 中由 suspend 函数来支持避免回调地狱的情况。 挂起函数 (suspend function)使用 suspend 关键字修饰的函数可以在协程中挂起。挂起函数不会阻塞线程而是挂起当前协程直到任务完成后再继续执行。例如 suspend fun fetchData(): String {// 模拟网络请求delay(1000) // 挂起 1 秒不会阻塞线程return Data fetched }挂起 (Suspend) 和恢复 (Resume)当协程执行到 delay、withContext 等挂起函数时它会暂停执行并释放资源一旦挂起函数完成任务协程会恢复执行。这种机制使得协程能够在同一线程上无缝切换从而提高性能。 作用域 (CoroutineScope)协程作用域定义了协程的生命周期。常见的协程作用域有 GlobalScope、CoroutineScope、viewModelScope 和 lifecycleScope它们决定了协程的启动与取消。作用域有助于自动管理协程确保在不再需要协程时取消它避免资源泄漏。 上下文 (CoroutineContext)协程的上下文包含了协程的调度器比如 Dispatchers.Main、Dispatchers.IO和其他信息。上下文指定了协程在哪个线程或线程池上执行调度器为协程提供执行环境。 三、协程的特点 轻量 一个线程中可以包含多个协程协程支持挂起不会让正在运行协程的线程阻塞与阻塞线程相比挂起协程的操作更轻量内存泄漏更少 协程使用了结构化并发机制可以在一个作用域内执行多个操作可以一次性全部取消掉这样就不用像 RxJava 一样要自己把 Disposable 放在 CompositeDisposable 里内置取消支持 当我们取消一个协程时取消操作会在运行中的整个协程层次结构内传播也就是父协程取消后子协程也会被取消Jetpack支持 集成 Jetpack 中的 ViewModel 、Lifecycle 和 LiveData 都提供了对应的协程作用域Kotlin 协程框架中的挂起函数有另外一个好处就是可以在编译时就让方法的调用方知道这是一个耗时的操作需要确定这个操作要放在哪个线程执行这样就不用像 Android 框架对主线程网络请求的禁止方式一样在运行时才抛出异常。 四、协程和线程的区别 (1)协程是编译器级别的线程是系统级别的。协程的切换是由程序来控制的线程的切换是由操作系统来控制的。 (2)协程是协作式的线程是抢占式的。协程是由程序来控制什么时候进行切换的而线程是有操作系统来决定线程之间的切换的。 (3)一个线程可以包含多个协程。 (4)Java中多线程可以充分利用多核cpu协程是在一个线程中执行。 (5)协程适合io密集型的程序多线程适合计算密集型的程序(适用于多核cpu的情况)。当你的程序大部分是文件读写操作或者网络请求操作的时候这时你应该首选协程而不是多线程首先这些操作大部分不是利用cpu进行计算而是等待数据的读写其次因为协程执行效率较高子程序切换不是线程切换是由程序自身控制因此没有线程切换的开销和多线程比线程数量越多协程的性能优势就越明显。 (6)使用协程可以顺序调用异步代码避免回调地狱。 五、协程的使用 Kotlin 提供了丰富的协程构建器如 launch 和 async分别用于启动协程并发任务。 1. launch launch 是一种最常用的协程构建器用于启动一个新协程并且不会阻塞主线程。它的返回值是 Job可以用于取消协程。 GlobalScope.launch {val result fetchData()println(result) }2. async async 用于并发执行多个任务适合需要返回结果的情况。它的返回值是 Deferred可以通过 await() 来获取执行结果。 CoroutineScope(Dispatchers.Main).launch {val result1 async { fetchData() }val result2 async { fetchData() }println(result1.await() result2.await()) }六、Job的使用 我们在使用launch的时候就启动了一个协程launch方法会返回一个job。 1.使用job.cancel()取消一个协程 fun main() {val job GlobalScope.launch {delay(1000L)println(World!)}job.cancel()println(Hello,)} 因为协程被取消了所以只会打印Hello。 2、join()等待协程执行完毕 作用类似于Thread.join()函数join()后面的代码会等到协程结束再执行结果如下 fun main() runBlocking {val job GlobalScope.launch {delay(1000L)println(World!)delay(1000L)}println(Hello,)job.join() println(Good) }//依次打印 Hello, World! Good 七、 其他注意事项 在Activity或Fragment中使用协程时要尽量避免使用GlobalScope因为GlobalScope是生命周期是process级别的所以上面的例子中即使Activity或Fragment已经被销毁协程仍然在执行。 建议使用具有生命周期协程LifecycleScope。 关于kotlin相关的同步异步回调阻塞这篇文章很生动 https://juejin.cn/post/7373502637729513506https://juejin.cn/post/7373502637729513506retrofit搭配协程 https://juejin.cn/post/6962921891501703175https://juejin.cn/post/6962921891501703175emmm...感觉写的很浅还有很多知识点没有概括到后面补充
http://www.hkea.cn/news/14587663/

相关文章:

  • 好利来邢台官方网站开发部做app软件大概多少钱
  • 做响应式网站怎么设计ui设计是什么专业学科
  • 企业型网站建设哪家比较好电商数据中台
  • 网页设计与制作教程用户注册优化 seo
  • 城市网站联盟网易企业邮箱超大附件
  • 怎样做访问外国网站才能不卡网站开发与网页设计大作业
  • 银行需要网站开发人员吗wordpress多语言根据ip切换语言
  • 株洲做网站哪家好网站开发加22760047
  • 霸州住房和城乡建设厅网站做写手一般上什么网站
  • 网站设计常见流程淮南电商网站建设
  • 有哪些可以做网站的平台江苏伟业建设集团网站
  • 成都网站建设网络网站建设怎样找客户
  • 昆明做网站哪家便宜一级a做爰片2202网站
  • 深圳网站定制建设重庆比较好的软件开发培训学校
  • 天津住房城乡建设厅官方网站牛牛襄阳网站建设
  • 做系统去哪个网站好多模室内设计网站
  • 自己做视频网站有点卡e福州怎么代缴医保
  • 首都航空公司官方网站科技公司php网站模版
  • 提高网站的权重的最佳方法西安今天出大事
  • 信阳网站推广公司个人视频网站应该怎么做
  • 郑州做订货网站外贸seo关键词
  • 协作网站是什么wampserver搭建网站
  • ps做网站浏览器预览wordpress 微信
  • 麻涌企业网站建设wordpress 暗箱
  • centos wordpress建站各大网站创始人
  • 有哪些好的做兼职的网站公司管理系统有哪些
  • 做IT的需要别人打开网站吗哪个设计网站做兼职好
  • 广州网站建设熊掌号旅游网站设计完整代码
  • 网站漂浮广告代码太原做网站公司5大建站服务
  • 网站建设公司宣传范文网站建设文档