Kotlin Coroutines()是一种编程思想,并不局限于特定的语言。可以使用阻塞的方式写出非阻塞式的代码,解决并发中常见的回调地狱。消除了并发任务之间的协作的难度。 在 android 中使用引入依赖root build.gradleplugins { // kotlin编译插件 id 'org.jetbrains.kotlin.android' version '1
转载 2023-08-18 02:37:25
170阅读
前言本篇是在Android官网对Kotlin的学习记录。记录Kotlin Coroutines在Android上的特点、应用等概述一、是什么?是一种并发的设计模式,可以使用它来简化异步执行的代码,它可以帮助管理一些耗时的任务,以防耗时任务阻塞主线程。可以用同步的方式写出异步代码,代替了传统的回调方式,让代码更具有可读性。 关于作用域:必须运行在CoroutineScop
转载 2023-07-27 20:54:29
603阅读
属于Kotlin 中非常有特色的一项技术,因为大部分编程语言中是没有这个概念的。那么什么是呢?它其实和线程是有点类似的,可以简单地将它理解成一种轻量级的线程。要知道,我们之前所学习的线程是非常重量级的,它需要依靠操作系统的调度才能实现不同线程之间的切换。而使用携切可以仅在编程语言的层面就能实现不同程之间的切换,从而大大提升了并发编程的运行效率。举一个具体点的例子,比如我们有如下fo
转载 2024-01-12 05:57:17
82阅读
一.线程的桥接1.runBlocking方法    runBlocking方法用于在线程中去执行suspend方法,代码如下:@Throws(InterruptedException::class) public fun <T> runBlocking(context: CoroutineContext = EmptyCoroutineConte
转载 2024-01-03 08:40:31
109阅读
关于的异常处理,一直以来都不是一个简单问题。因为涉及到了很多方面,包括 异常的传递 ,结构化并发下的异常处理 ,异常的传播方式 ,不同的Job 等,所以常常让很多(特别是刚使用的,也不乏老手)同学摸不着头脑。常见有如下两种处理方式:try catchCoroutineExceptionHandler但这两种方式(特别是第二种)到底该什么时候用,用在哪里,却是一个问题?比如虽然知道 Coro
转载 2024-01-03 08:44:33
141阅读
的作用并不是一个新鲜概念,相信大家都有所了解,它的好处是可以极大程度的复用线程,通过让线程满载运行,达到最大程度的利用CPU,进而提升应用性能。它和反应式编程一样都可以有效的提高资源的利用率,并且让我们脱离callback hell。目前JAVA里还没有原生的库(AJDK里对提供了支持)。Kotlin从1.1开始支持,不过目前还处于试验阶段,感兴趣的同学可以查看这篇文档。如何在
转载 2023-07-02 11:46:50
234阅读
Kotlin的使用是什么?首先kotlinkotlin的扩展库(kotlinx.coroutines)。线程在Android开发中一般用来做一些复杂耗时的操作,避免耗时操作阻塞主线程而出现ANR的情况,例如IO操作就需要在新的线程中去完成。但是呢,如果一个页面中使用的线程太多,线程间的切换是很消耗内存资源的,我们都知道线程是由系统去控制调度的,所以线程使用起来比较难于控制。这个时候k
是什么?是一种编程思想,并不局限于特定的语言。除 Kotlin 以外,其他的一些语言,如 Go、Python 等都可以在语言层面上实现Kotlin Coroutine 本质上是 Kotlin 官方提供的一套线程封装 API,其设计初衷是为了解决并发问题,让「协作式多任务」实现起来更方便。与线程的关系从 Android 开发者的角度去理解它们之间的关系:我们所有的代码跑在线程中,
背景对于大家来说肯定不陌生了,一个进程有多个线程,一个线程有多个协作为轻量级“线程”,最大特点是可以把异步逻辑以同步方式写出来,让代码更加清晰。同时可以和生命周期绑定,比如viewModelScope、lifecycleScope等等,极大的方便了开发者。那的不阻塞线程到底是什么原理呢?它真的比线程开销小吗?这里帮大家初探一下! 使用1、以viewModelSco
转载 2023-07-05 00:26:57
326阅读
文章目录前言一. gradle配置二. 创建的三种方式2.1 runBlocking2.2 GlobalScope2.3 CoroutineScope三. 总结 前言:英文coroutine,可以认为是轻量级的线程,是一套基于Java线程池的封装。相对于线程要处理各种同步问题,则可以将其简化,以同步的方式写异步代码。一. gradle配置对于Android项目,最新版本的kotl
简单来说 Kotlin 一种异步编程的同步顺序写法,它跟线程是两个不同的概念,所以不要被 两字弄混淆来看一下一个具体的场景:我们进行网络请求得到数据后处理数据,代码如下fun setUpUI(){ val data = requestData() doSomethingElse() processData(data) }
转载 2023-10-28 09:35:05
212阅读
前言 1. Kotlin是啥?2. Kotlin具体介绍  2.0 Kotlin的优点  2.1 添加依赖  2.2 启动  2.3 作用域(CoroutineScope)  2.4 Job(作业)  2.5 CoroutineDispatcher(调度器)  2.6
转载 2024-01-25 12:05:16
101阅读
1. 挂起函数的工作原理的内部实现使用了 Kotlin 编译器的一些编译技术,当挂起函数调用时,背后大致细节如下:挂起函数或挂起 lambda 表达式调用时,都有一个隐式的参数额外传入,这个参数是Continuation类型,封装了恢复后的执行的代码逻辑。用前文中的一个挂起函数为例:suspend createPost(token, item): Post实际上在 JVM 中更像下面这样:
转载 2023-10-06 21:01:24
187阅读
先理清楚三种说法:1、是轻量级线程、比线程耗费资源少错。竟然还是官方说法。是语言层面的东西,而线程是操作系统层面的,就没啥可比性。 kotlin,和操作系统概念的不一样,理念有一点点像,但是没有任何关系。2、是线程框架对。就是对线程的封装,模糊了线程。中切换线程非常方便,由此解决了异步编程时过多的回调问题。Kotlin 内部自己维护了线程池。在使用过程中,
那段日子抽时间学了一下,发现其实在几年前就已经存在了,只是近一俩年才开始有了慢慢普及的现象,所以学完后及时输出一下~不知能否帮到你,但愿别带歪你,时间过得可真是快啊,一晃多年... 是什么?为什么要使用?如何使用?如何避免泄露、内存泄露?Jetpack AAC 哪些组件支持是什么?关于,其实在很多语言中早已在使用了,例如 Lua语言、Python语言、Go语
            在 Kotlin 当中,我们通常把异常分为两大类,一类是取消异常(CancellationException),另一类是其他异常。在 Kotlin 当中,这两种异常的处理方式是不一样的。        一、c
转载 2023-11-30 12:35:50
108阅读
Kotlin理解与实战(一)什么是Android用来解决什么问题是:suspend -也称为挂起或暂停,用于暂停执行当前,并保存所有局部变量;resume -用于让已暂停的从其暂停处继续执行挂起函数调度器-Dispatchers.Main-Dispatchers.IO-Dispatchers.Default的两部分Kotlind的实现分为两个层次任务泄漏结构
是什么呢?综合了很多人的总结,一言蔽之就是一种组织代码运行的方式。 和线程,进程不同,它通常不是由操作系统底层直接提供支持,而是通过应用层的库来实现,譬如Kotlin,其实就是依赖java/android的线程/线程池再加上一些对上下文的控制逻辑来实现的。那么使用能带来什么好处呢?仅仅从概念层面去讲也可以总结出几条:因为某些库的实现使用了任务分发(比如Kotlin),于是
如何理解是一种不同于进程和线程的存在,其本质是一种函数,同一线程中的多个协是串行执行的,但为了理解仍然需要三者一起对比。进程、线程、三者的上下文切换对比:进程线程切换者操作系统操作系统用户(编程者/应用程序)切换时机根据操作系统自己的切换策略,用户不感知根据操作系统自己的切换策略,用户不感知用户自己(的程序)决定切换内容页全局目录&内核栈&硬件上下文内核栈&amp
前言随着kotlinAndroid开发领域越来越火,在各个项目中的应用也逐渐变得广泛但是到底是什么呢?其实是个古老的概念,已经非常成熟了,但大家对它的概念一直存在各种疑问,众说纷纷 有人说是轻量级的线程,也有人说kotlin其实本质是一套线程切换方案显然这对初学者不太友好,当不清楚一个东西是什么的时候,就很难进入为什么和怎么办的阶段了 本文主要就是回答这个问题,主要包括以下内
转载 2024-09-15 13:39:41
33阅读
  • 1
  • 2
  • 3
  • 4
  • 5