Kotlin 、协程、结构化并发

写在前面:一名有三年Android开发经验的女程序员(欢迎大家关注我 ~期待和大家一起交流和学习Android的相关知识)

在 Kotlin 1.1 也就是 2017年初, 首次推出协程作为实验性质的特性开始,我们一直在努力向程序员解释协程的概念,他们过去常常使用线程理解并发,所以我们举的例子和标语是"协程是轻量级线程"。

此外,我们的关键 api 被设计为类似于线程 api,以简化学习曲线。这种类比在小规模例子中很适用,但是它不能帮助解释协程编程风格的转变。

当我们学习使用线程编程时,我们被告知线程是昂贵的资源,不应该到处创建它们。一个优雅的程序通常在启动时创建一个线程池然后使用它们搞些事情。有些环境(尤其是 iOS)甚至说"不赞成使用线程"(即使所有的东西仍然在线程上运行)。它们提供了一个系统内的随时可用的线程池,其中包含可向其提交代码的相应队列。

但是协程的情况不同。它可以非常方便地创建很多你需要的协程,因为它们非常廉价。让我们看一下协程的几个用例。

异步操作(Asynchronous operations)

假设你正在写一个前端 UI 应用(移动端、web 端或桌面端——对于这个例子并不重要),并且需要向后端发送一个请求,以获取一些数据并使用结果更新 UI 模型。我们最初推荐这样写:

fun requestSomeData() {
    launch(UI) {
        updateUI(performRequest())
    }
}

这里,我们使用 launch(UI) 在 UI 上下文中启动一个新的协程&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值