![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Kotlin协程
文章平均质量分 95
_蓝橙
日拱一卒无有尽,功不唐捐终入海
展开
-
Kotlin 协程与 Flow
简介Kotlin的Flow是Kotlin在异步编程方面的一个重要组件,它提供了一种声明式的、可组合的、基于协程的异步编程模型。Flow 的设计灵感来自于RxJavaFlux和其他异步编程库,但它与Kotlin协程无缝集成,并提供了一种更具Kotlin特性的 API。Flow是用于异步数据流的概念,它可以看作是一系列异步的、可并发的值或事件的流。可以通过操作符链更改、过滤、转换这些流,并且可以对这些流进行组合、合并、扁平化等操作。原创 2023-08-02 16:27:28 · 976 阅读 · 1 评论 -
Kotlin 协程与 Channel(通道)
简介Kotlin 中的 Channel(通道)是一种协程间通信的机制,用于在协程之间传递数据。它提供了一种有序、线程安全的方式,让生产者和消费者之间进行异步数据传输。Channel 这个管道的其中一端,是发送方;管道的另一端是接收方。而管道本身,则可以用来传输数据。send()receive()close()itelement在上述示例中,创建了一个对象用于传递整数数据。通过launch函数创建了两个协程,一个用于发送数据,另一个用于接收数据。在发送者协程中,使用send()原创 2023-07-20 22:03:57 · 1480 阅读 · 1 评论 -
Kotlin 协程基础入门:协程的上下文 Context (万物皆为Context)
可以通过调用 coroutineContext 扩展函数,获取当前协程的 CoroutineContext。由此可见,Dispatcher 实际上就是 CoroutineContext。也就可以理解上面用法了,归根到底他们都是同类型的,至于号是kotlin 中的运算符重载operator。原创 2023-06-10 19:00:54 · 1220 阅读 · 0 评论 -
Kotlin 协程基础入门:Job和协程的生命周期
Job简介在 Kotlin 协程中,一个 Job 对象是一个代表正在执行的异步操作的任务,可以用它来控制与取消协程的执行,是协程执行的核心组件之一。在以上协程创建方式中,Job 对象都被自动管理,开发者无需显式管理,但是可以通过 Job 对象的方法来控制协程的执行,如取消和等待,相当于协程的句柄。由上面代码可知,通过 launch 函数创建的协程会返回一个 Job 对象。在协程执行完成后,无法获取协程执行的结果。原创 2023-06-06 23:08:48 · 472 阅读 · 1 评论 -
Kotlin 协程基础入门:协程的三种启动方式和挂起函数
通常,我们会在协程中使用挂起函数,并利用协程的上下文来管理执行环境。协程构建了一种轻量级的线程,将线程的状态保存在内存中,然后利用挂起函数实现了产生、挂起、恢复等机制,从而提供了非阻塞的多任务异步编程方式。withContext()是Kotlin协程库中的一个高级函数,它用于切换协程的执行上下文,例如在一个协程中切换到IO线程执行网络请求或者读写文件等操作。总之,挂起函数是 Kotlin 协程的重要概念,它本质是一种带有挂起(协程)能力的标记函数,它利用了协程和协程上下文机制来实现非阻塞式的异步编程。原创 2023-06-04 21:56:54 · 1107 阅读 · 0 评论