文章目录
- 1.你工作这么些年,对于Kotlin语言协程是什么,有了解么?
- 2.那这样说的话,协程到底有什么用?
- 2.2.1 多个请求并发和合并的问题
- 2.2.2 会引发嵌套回调地狱问题
- 2.2.3 Rx解决回调地狱
- 2.2.4 协程来解决此问题
- 2.2.5 协程是什么?
- 总结
- 扩展阅读
1.你工作这么些年,对于Kotlin语言协程是什么,有了解么?
答:虽然对于一些人来说比如刚开始的我,协程(Coroutines)
是一个新的概念,但是协程这个术语早在1958
年就被提出并用于构建汇编程序
,协程
是一种编程思想
,并不局限于特定的语言,就像Rx
也是一种思想
,并不局限于使用Java
实现的RxJava
。不同语言实现的协程库可能名称或者使用上有所不同,但它们的设计思想是有相似之处的。
kotlinx.coroutines
是由JetBrains
开发的kotlin协程库
,可以把它简单的理解为一个线程框架
。
但是协程不是线程,也不是新版本的线程,它是基于线程封装的一套更上层工具库,我们可以使用kotlin协程库提供的api方便的灵活的指定协程中代码执行的线程、切换线程,但是不需要接触线程Thread类。
说到这里,大家可能就会想到Android
的AsyncTask
或者RxJava
的Schedulers
,没错,从某种意义上来说它们和协程是相通的,都解决了异步线程切换的问题
,然而协程
最重要的是通过非阻塞挂起和恢复
实现了异步代码
的同步编写