是一种全新的处理并发的设计模式,说到并发,自然就想到异步,既然是异步,那么我们就想到很多处理异步的方式,比如Rxjava,Android开发中的Handler、异步任务、service等。做为一个Android开发者,单开始用kotlin的时候,以为是kotlin才有,其实不是。不是一个新的概念,而是很早之前就有,最早使用的编程语言可以追溯到 1967 年的&n
libco切换原理解读及简要使用以前看过libco一点源码,最近组里面分享了一次的原理。花了点功夫,借助一点网上的资料,算是摸清楚了libco切换的来龙去脉。libco除了的切换还涉及系统hook以及相关工程的封装,篇幅及时间限制,这里不涉及。本篇主要把切换的来龙去脉以及原理从个人理解角度介绍下。明白和能说出来讲清楚是两种不同的理解程度,这也是本文的主要目的。函数调用的原理li
文章目录前言一、基础第一个结构化并发挂起函数 suspend范围构造器 Scope builder范围构造器 Scope builder 和 并发 concurrencyjob轻量级二、Android 上的 Kotlin 特点Android 上 Kotlin +Retrofit进行网络请求的示例一些代码的准备Kotlin 简单使用RetrofitKotlin android 简单
job是可以取消的,同理作用域也可以进行取消操作。
原创 2023-03-16 09:18:32
300阅读
文章目录CoroutineScope 作用域Job 工作任务CoroutineContext 上下文Job 生命周期父 CoroutineContext 说明 本系列博客文章深入探讨了中的取消和异常。取消对于避免做多余的工作很重要,这会浪费内存和电量;正确的异常处理是良好用户体验的关键。作为本系列其他 3 部分(第 2 部分:取消,第 3 部分:异常,第 4 部分:不应取消的工作的
转载 2024-05-28 20:20:05
52阅读
一、取消、二、作用域取消、三、作用域子取消、四、通过抛出异
原创 2022-12-03 00:09:37
262阅读
本文概要Kotlin 的库 kotlinx.coroutines 当中有个比较常用的 async 函数,返回的 Deferred<T> 有个 await 方法,这个方法在子正常返回时返回结果,否则直接抛异常,而我们的目标是定义一个扩展 awaitOrError:launch { val deferred = ... val (result, error) = d
一、CPU 密集型任务取消、二、使用 isActive 判定当前 CPU 密集型任务是否\
原创 2022-12-04 05:09:05
350阅读
引言    ants是一个高性能的 goroutine 池,实现了对大规模 goroutine 的调度管理、goroutine 复用,允许使用者在开发并发程序的时候限制 goroutine 数量,复用资源,达到更高效执行任务的效果。    本文将从头开始分析ants库是如何实现的,并在结尾给出性能测试结果. 
本文我们来聊聊是如何实现切换线程的。要搞清楚这个问题,我觉得需要搞懂这几个知识点:Continuation,简单讲可以把它看成是Callback,回调。当调用suspend函数,会被挂起,当suspend函数执行完成后,会通过Continuation的resumeWith方法,将执行结果返回给继续执行。ContinuationInterceptor顾名思义是Continuat
本文是介绍 Android 系列中的第三部分,这篇文章通过发送一次性请求来介绍如何使用处理在实际编码过程中遇到的问题。在阅读本文之前,建议您先阅读本系列的前两篇文章,关于在 Android 开发中使用的 背景介绍 和 上手指南。使用解决实际编码问题前两篇文章主要是介绍了如何使用来简化代码,在 Android 上保证主线程安全,避免任务泄漏。以此为背景,我们认为使用是在处理后
转载 2024-05-17 09:51:57
100阅读
官网介绍:https://developer.android.com/kotlin/coroutines一、的概念(Coroutines)是一种并发设计模式,可以在 Android 平台上使用它来简化异步执行的代码。 是在版本 1.3 中添加到 Kotlin 的,它基于来自其他语言的既定概念。在 Android 上,有助于管理长时间运行的任务.二、的特点是在 Android
转载 2023-09-11 21:44:05
170阅读
一:是什么?基于线程,是轻量级的线程 coroutine = cooperation+routine 难度在哪里? 1,java中不曾出现,新概念 2,概念不清晰 3,Kotlin基础不扎实 4,多线程基础太薄弱二:在android用来解决什么问题?1,处理耗时任务,这种任务常常会阻塞主线程 2,保证主线程安全,确保安全的从主线程调用任何suspend函数(挂起函数) 异步任务已经过
转载 2023-12-20 17:35:55
130阅读
前言大家好,我是小益!在上章内容中,我们简单了解了什么是以及的基本使用,主要提到了的launch与withContext用法。但是launch与withContext并不适合用于需要返回结果的并发场景,在并发场景中,我们一般会使用的async/await。推荐文章将率先在公众号「Code满满」上发布,欢迎大家关注!一、async与awiatasync单单从字面意思理解就知道其与异步
转载 2023-07-28 00:03:15
257阅读
文章目录flask之分析线程和协一、 思考:每个请求之间的关系二、 threading.local三、 通过字典自定义threading.local四、 通过setattr和getattr实现自定义threthreading.local五、 每个对象有自己的存储空间(字典)六、 如果是你会如何设计flask的请求并发?flask之分析线程和协一、 思考:每个请求之间的关系我们每一个请求进来的时
转载 2023-08-02 13:00:59
56阅读
是无法保证里面的延时任务能一定执行完成的。甚至就不会打印出来巴拉巴拉变。
原创 2023-03-16 07:39:15
93阅读
废话留在结尾了。以下括号内有的是细分问题,有的是关键点。(注:我简历上有写源码okhttp、Retrofit、Glide、Eventbus、Arouter。)一、作业帮:1面:        1、Https握手过程(CA验证、哪些是对称加密、哪些非对称加密,ssl包含哪些内容);     
如何理解是一种不同于进程和线程的存在,其本质是一种函数,同一线程中的多个协是串行执行的,但为了理解仍然需要三者一起对比。进程、线程、三者的上下文切换对比:进程线程切换者操作系统操作系统用户(编程者/应用程序)切换时机根据操作系统自己的切换策略,用户不感知根据操作系统自己的切换策略,用户不感知用户自己(的程序)决定切换内容页全局目录&内核栈&硬件上下文内核栈&amp
解决了什么?Coroutines作为Kotlin的一大特性,被Android官方所强推,主要用来简化Android中异步代码的编写,将开发者从异步代码的泥潭中解救出来。在Android开发中,Coroutines所解决的两个最大的问题是:耗时任务:阻塞主线程主线程安全:任何suspend方法都可以在主线程中被调用我们来详细看看这两大问题,Coroutines都是如何去解决的。耗时任
目录 前言 Kotlin,现在已经成为了面试甚至是工作中一个非常火的东西。本人在刚开始了解Kotlin的时候,断断续续看了网上不少文章,用长篇大论把Kotlin描述的非常玄乎,但是看完后还是依然云里雾里,所以决定来写一篇关于的文章,希望能够帮助大家能够更快的上手KotlinJetPack里的组件上图就是JetPack中包含的组件列表,每个组件都是相对独立的,可以被单独使用和构建
转载 2024-02-01 15:12:12
50阅读
  • 1
  • 2
  • 3
  • 4
  • 5