协程我的理解是协作的线程,就是说与主线程协作的线程,也就是工作线程。

而协程的本质确实是这样。Kotlin协程的底层就是Java的多线程,协程就是一个比较方便的线程框架。协程这种线程框架有什么好处呢?它的好处是用同步的代码写出异步的逻辑,消除了Java中的回调。Java中是有回调地狱的。。。

构建协程的函数有两个,一个是launch,一个是async。其中,async是带返回值的launch。这点从函数名也能看出来,launch 更多是用来发起一个无需结果的耗时任务(如批量文件删除、创建),这个工作不需要返回结果。async 函数则是更进一步,用于异步执行耗时任务,并且需要返回值(如网络请求、数据库读写、文件读写),在执行完毕通过 await() 函数获取返回值。

launch与async同时使用。

用withContext可以解决用多个嵌套launch引起的回调地狱问题。

我们可以把withContext的内容放到一个单独的方法中,但是这个方法必须用suspend修饰。

java 协程_你真的了解kotlin的协程么?相关推荐

  1. java.jpi在线_解析Kotlin-koans学习kotlin编程(一)

    源起 从C#转java,写了一段时间之后觉得超级啰嗦,借着Kotlin成为了android开发的官方语言的契机发现kotlin也许能成为c#转java的程序员的福音. 在学习kotlin的过程中发现了 ...

  2. 开启协程_「科普」什么是协程?

    阅读本文大概需要 6 分钟 今天要讲的这个东西说实话,我也是今天才知道,一个我们大多数人可能从来都没用过的语法,哪就是传说中的[协程],英文表达是Coroutine. 可能你会说,携程谁不知道啊,不就 ...

  3. java replaceall函数_你真的会用java replaceAll函数吗?

    replace.replaceAll.replaceFirst这三个函数会java的同学估计都用过,笔者已经用了2年多,可是,我们真的懂他们吗? 概述一下他们三个的用法: · replace(Char ...

  4. java中引用类型_您真的了解Java中的4种引用类型吗?

    Java中提供了四个级别的引用:SoftReference,FinalReference,WeakReference和PhantomReference.在四种引用类型中,只有FinalReferenc ...

  5. java 正则匹配_正则表达式真的很强大,可惜你不会写

    专注于Java领域优质技术,欢迎关注 本文旨在用最通俗的语言讲述最枯燥的基本知识 文章提纲: 元字符 重复限定符 分组 转义 条件或 区间 正则表达式在几乎所有语言中都可以使用,无论是前端的JavaS ...

  6. java精通时间_你真的精通 Java 吗?

    简历和自我介绍上经常能够读到" 精通 Java" 这样的话,有人和我说,精通 Java 的人太多了,精通 Java 已经不能算亮点.不能给自己加分了.可是事实真是这样吗? 对于语言 ...

  7. java 线框图_你真的搞懂什么是线框图,什么是原型图了吗?

    设计师朋友们都知道,在网站开发或者手机应用开发的前期阶段,需要创建线框图和原型图给客户展示.但有时候客户会提出略过线框图和原型图设计的阶段,直接过渡到网站的界面设计甚至是开发阶段.这种想法,往往是源于 ...

  8. python爬携程_用python selenium抓取携程信息

    最近在学习selenium,遇到一个很奇怪的问题,debug了半天还是没弄明白,我是在测试抓取携程网站的机票信息 我的代码: # -*- coding: utf-8 -*- from selenium ...

  9. 【对比Java学Kotlin】协程简史

    文章目录 一.概念释义 1.1 协程定义 1.2 与线程的关系 1.3 协程简史 二.种类划分 2.1 按调用栈分类 2.2 按调度方式分类 三.异步编程 3.1 多线程 3.2 回调 3.3 Pro ...

最新文章

  1. 微服务开发中的数据架构设计
  2. 理解__repr__
  3. 数学之美番外篇:快排为什么那样快
  4. Android7.1 Presentation双屏异显原理分析
  5. Mysql的float double decimal
  6. 使用Java客户端操作elasticsearch
  7. Redis面试常问2-- 从海量数据里查询某一固定前缀的key? SCAN cursor
  8. 去中心化抵押借贷市场当前总借款量94.24亿美元
  9. CentOS 7 安装Mono 和 MonoDevelop
  10. VMWare File Format Learning Use VHD File To Boot VMWare CoreOS Docker Configuration And Runnin...
  11. 【Mybatis】mybatis的小细节
  12. office2013打开出现配置进度
  13. 第二章 AIR202_Lua_串口控制
  14. Android之多媒体视频的播放和录制
  15. 哈,新学期又开始喽。
  16. 【BirdDog】 Full NDI在体育/电竞直播中的降成本、轻量化、多机位现场制作
  17. Word 调整段落行间距无效怎么办
  18. 2023河南理工大学计算机考研信息汇总
  19. win7开机登录界面的壁纸怎样更换修改
  20. 字体反爬 -- 起点月票案例

热门文章

  1. Sword STL迭代器prev,next相关函数
  2. php5权限控制修饰符,interface和abstract
  3. 使用 pv 命令监控 linux 命令的执行进度
  4. hdu 2191 多重背包
  5. HorizontalScrollView里的标签改变颜色(今日头条里的功能仿照)
  6. Duilib vlc c++ 字符编码
  7. Web 前沿——HTML5 Form Data 对象的使用
  8. SharePoint场管理-PowerShell(一)
  9. iOS6.0 xcode4.5 设置横屏
  10. 关于移动,联通,电信的区分。