首页 > 其他分享 >你确定不来看看?谷歌技术团队打造的Kotlin协程入门+进阶实战

你确定不来看看?谷歌技术团队打造的Kotlin协程入门+进阶实战

时间:2023-07-31 22:32:56浏览次数:44  
标签:协程 进阶 作用域 Kotlin 线程 kotlin Android

前言

你确定不来看看?谷歌技术团队打造的Kotlin协程入门+进阶实战_作用域

尽管协程并不是一个新的话题,但他是一个很吸引人的话题,协程在这些年里被重新发现了很多次,特别是当需要某种形式的轻量级线程和/或寻找“回调地狱”的解决方案时。

Kotlin协程的概念

协程是Coroutine的中文简称,co表示协同、协作,routine表示程序。协程可以理解为多个互相协作的程序。协程是轻量级的线程,它的轻量体现在启动和切换,协程的启动不需要申请额外的堆栈空间;协程的切换发生在用户态,而非内核态,避免了复杂的系统调用。其实也可以讲,Kotlin 的协程就是一个封装在线程上面的线程框架

特点

  • 轻量:您可以在单个线程上运行多个协程,因为协程支持挂起,不会使正在运行协程的线程阻塞。挂起比阻塞节省内存,且支持多个并行操作。
  • 内存泄漏更少:使用结构化并发机制在一个作用域内执行多项操作。
  • 内置取消支持:取消操作会自动在运行中的整个协程层次结构内传播。
  • Jetpack 集成:许多 Jetpack 库都包含提供全面协程支持的扩展。某些库还提供自己的协程作用域,可供您用于结构化并发。

Kotlin协程非常强大和灵活,在Kotlin协程中,编译器只实现了一个suspend关键字,其他的事情都是由协程库处理的,但在结构上就不是那么固定。所以对于初学者来说,理解协程就不是一件容易的事。

如何入门Kotlin协程

如果你想学习Kotlin协程,但网上的文章要不就是讲的太浅,两三句话就带过去,看完就剩索然无味,要不就是讲的太深,从头到尾都是晕晕乎乎的,还有一种就是内容适中,但是一到开发就翻车,结果和想象不一样,所以为了大家能够系统的学习Kotlin协程在这分享一份谷歌技术团队整理的《史上最详Android版Kotlin协程入门进阶实战指南》,内容逻辑清晰,知识点配上代码讲解能让你更好的理解以及掌握,还有实战训练强化你对于Kotlin协程的使用。

有需要的小伙伴,可以点击下方课程链接详细了解!!!

https://edu.51cto.com/course/32703.html

第一章 Kotlin协程的基础介绍

  • 1.1协程是什么
  • 1.2什么是Job 、Deferred 、协程作用域
  • 1.3 Kotlin协程的基础用法
  • 你确定不来看看?谷歌技术团队打造的Kotlin协程入门+进阶实战_Kotlin_02

第二章 kotlin协程的关键知识点初步讲解

  • 2.1协程调度器
  • 2.2 协程上下文
  • 2.3 协程启动模式
  • 2.4 协程作用域
  • 2.5 挂起函数
  • 你确定不来看看?谷歌技术团队打造的Kotlin协程入门+进阶实战_作用域_03

第三章 kotlin协程的异常处理

  • 3.1协程异常的产生流程
  • 3.2 协程的异常处理
  • 你确定不来看看?谷歌技术团队打造的Kotlin协程入门+进阶实战_Kotlin_04

第四章 kotlin协程在Android中的基础应用

  • 4.1 Android使用kotlin协程
  • 4.2 在Activity与Framgent中使用协程
  • 4.3 ViewModel中使用协程
  • 4.4 其他环境下使用协程
  • 你确定不来看看?谷歌技术团队打造的Kotlin协程入门+进阶实战_Kotlin_05

第五章 kotlin协程的网络请求封装

  • 5.1协程的常用环境
  • 5.2 协程在网络请求下的封装及使用
  • 5.3 高阶函数方式
  • 5.4 多状态函数返回值方式
  • 5.5 直接返回值的方式
  • 你确定不来看看?谷歌技术团队打造的Kotlin协程入门+进阶实战_Kotlin_06

第六章 深入kotlin协程原理(一)

  • 6.1 suspend 的花花肠子
  • 6.2 藏在身后的- Continuation
  • 6.3 村里的希望- SuspendLambda
  • 你确定不来看看?谷歌技术团队打造的Kotlin协程入门+进阶实战_Kotlin_07

第七章 深入kotlin协程原理(二)

  • 7.1 协程的那些小秘密
  • 7.2 协程的创建过程
  • 7.3 协程的挂起与恢复
  • 7.4 协程的执行与状态机
  • 你确定不来看看?谷歌技术团队打造的Kotlin协程入门+进阶实战_Android_08

第八章 Kotlin Jetpack 实战

  • 8.1 从一个膜拜大神的 Demo 开始
  • 8.2 Kotlin 写 Gradle 脚本是一种什么体验?
  • 8.3 Kotlin 编程的三重境界
  • 8.4 Kotlin 高阶函数
  • 8.5 Kotlin 泛型
  • 8.6 Kotlin 扩展
  • 8.7 Kotlin 委托
  • 8.8 协程“不为人知”的调试技巧
  • 8.9 图解协程原理
  • 你确定不来看看?谷歌技术团队打造的Kotlin协程入门+进阶实战_Kotlin_09

第九章 Kotlin + 协程 + Retrofit + MVVM优雅的实现网络请求

  • 9.1项目配置
  • 9.2 实现思路
  • 9.3 协程实现
  • 9.4 协程 + ViewModel + LiveData实现
  • 9.5 后续优化
  • 9.6 异常处理
  • 9.7 更新Retrofit 2.6.0
  • 你确定不来看看?谷歌技术团队打造的Kotlin协程入门+进阶实战_Android_10

结尾

知识的学习过程讲究一个循序渐进,不能操之过急,静下心来学习,是会有收获的。希望这份资料能帮大家掌握Kotlin协程。


标签:协程,进阶,作用域,Kotlin,线程,kotlin,Android
From: https://blog.51cto.com/u_16163453/6914271

相关文章

  • 第十四章 磁盘配额(Quota)与进阶文件系统管理
    第十四章磁盘配额(Quota)与进阶文件系统管理14.1磁盘配额(Quota)的应用与实作Quota的一般用途Quota比较常使用的几个情况是:针对WWWserver,例如:每个人的网页空间的容量限制针对mailserver,例如:每个人的邮件空间限制针对fileserver,例如,每个人最大的可用网络硬盘空间(教学......
  • mysql 简单进阶 ———— 重构查询[二]
    前言简单整理一下重构查询。正文为什么我们需要重构查询,原因也很简单,那就是查询慢。为什么会查询慢?查询性能慢底下的最基本的原因是访问的数据太多。某些查询不可避免地需要筛选大量的数据,但这并不常见。大部分性能低下的查询都可以通过减少访问的数据流的方式进行优化。......
  • Flutter系列文章-Flutter进阶2
    这一节我将再详细地为您介绍Flutter进阶主题,包括导航和路由、状态管理、异步处理、HTTP请求和RestAPI,以及数据持久化。让我们逐个介绍这些主题。1.导航和路由在Flutter中,导航和路由是构建多页面应用的关键概念。导航是指从一个页面(或称为路由)切换到另一个页面的过程。每个......
  • 十三、ElasticSearch和Kibana进阶--谷粒商城
    导入样本测试数据准备一份顾客银行账户信息的虚构的JSON文档样本。每个文档都有下列的schema(模式)。{"account_number":1,"balance":39225,"firstname":"Amber","lastname":"Duke","age":32,"gen......
  • mysql 简单进阶 ———— 多列索引[一]
    前文整理一下mysql的一些简单进阶技巧,来源于高性能mysql,但不是根据书的序列来的。正文有一个问题,那就是我们为什么要创建多列索引呢?这是要思考的一个问题。为什么创建多列索引,而不是创建多个单列索引。需要弄明白这个问题,那么就需要知道索引是如何工作的。为什么有索引这个......
  • C++ 算法进阶系列之再聊聊动态规划的两把刷子
    1.前言递归和动态规划是算法界的两个扛把子,想进入算法之门,则必须理解、掌握这两种算法的本质。一旦参悟透这2种算法的精髓,再加上对树、图等复杂数据结构的深入理解,可以解决大部分的算法问题。本文通过几个典型案例,再次聊聊动态规划算法。其实动态规划算法也就2把刷子。找到......
  • 雀魂07 进阶技巧
    在无人被飞的情况下,东场每个人一个庄位,而南场每个人是两个庄。东场运气>技术,南场正好相反 制定振听规则的意义在于防守判断与减少见逃行为的发生。所以,在出牌的后期,要如果自己的牌处于听的状态,但是为了防止其他人优势和。可以放弃和牌,进行防守。出牌的时候,参考别人打出过的牌,......
  • 【webpack系列】从基础配置到掌握进阶用法
    前言本篇文章将介绍一些webpack的进阶用法,演示内容继承自上一篇文章的内容,所以没看过上一篇文章的建议先学习上一篇内容再阅读此篇内容,会更有利于此篇的学习~文件指纹文件指纹指的是打包输出的文件名后缀,一般用来做版本管理、缓存等webpack的指纹策略有三种:hash、chunkhash、content......
  • kotlin开发 Flow的学习
    前言  Flow是配合Kotlin协程使用的异步编程工具。其实Flow的概念并不是独家的,更早之前Java端就有自带的stream与大名鼎鼎的RxJava,它们的思想都是响应式编程思想(或者也可以称呼链式编程),当时的响应式编程思想就是为了解决Java各个线程的异步处理结果进行同步。其更底层的思想核......
  • 不同层级的Android开发者的不同行为,我们该如何进阶和规划?
    四个层级如下:第一层:普通程序员第二层:熟练开发者、高级开发工程师、技术组长第三层:技术专家、架构师、一线经理第四层:科学家、研究员、首席(资深)架构师、部门研发总监imageAndroid开发者的四个层级按我的理解,无论是Android开发者还是其他的开发者都可以分为四个层级,可依次对应普......