Kotlin 1.3 正式发布:带来 Kotlin/Native Beta 和协程

达尔文
 达尔文
发布于 2018年10月30日
收藏 10


Kotlin 1.3 正式发布了

在 1.3 版本中,协程(coroutines)已趋于稳定状态,使非阻塞( non-blocking)代码更易于读写,可扩展性也更友好。此外,该版本还带来了 Kotlin/Native Beta,可将 Kotlin 代码直接编译成原生二进制文件。Kotlin 多平台特性现已涵盖了所有受支持的平台,因此可以在 Android 和 iOS 应用程序等组件之间共享业务逻辑。服务端也可以与所有客户端共享逻辑,而多平台库的诞生也使得使日常任务易于移植。

1.3 更新亮点包括:

  • 趋于稳定的协程

  • Kotlin/Native Beta

  • 多平台项目和工具

  • 用于 Kotlin/Native 和多平台的工具

  • Ktor 1.0 Beta

其他改进:

升级方式以及详情更新介绍请查看发布公告完整更新内容请点此查看

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Kotlin 1.3 正式发布:带来 Kotlin/Native Beta 和协程
加载中

精彩评论

一码千里
如果仅仅是语言层面的协程根本没卵用!协程一定要有相应的异步io库的支持,否则表面上看似是协程,但实际上被io阻塞后依然是线程切换。这些阻塞的地方包括文件io、网络io、系统调用,runtime对协程的调度必须处理好这三方面才算是真正的协程,像golang一样的协程才有意义。
orpherus
orpherus
你们还在讨论要不要用的时候,我已经发布到线上了。Kotlin 1.3真棒。
dwingo
dwingo

引用来自“一码千里”的评论

如果仅仅是语言层面的协程根本没卵用!协程一定要有相应的异步io库的支持,否则表面上看似是协程,但实际上被io阻塞后依然是线程切换。这些阻塞的地方包括文件io、网络io、系统调用,runtime对协程的调度必须处理好这三方面才算是真正的协程,像golang一样的协程才有意义。
其实OS一般很少提供异步调用, 即使是golang也不得不用专门的线程来把这些同步调用封装成异步.
阿影
阿影
目前kotlin已经可以全栈了,再加上 ios,估计以后就是全家桶了。
sofn
sofn
有了GraalVM,Kotlin还有必要单独搞Native吗

最新评论(26

wei2011
wei2011

引用来自“一码千里”的评论

如果仅仅是语言层面的协程根本没卵用!协程一定要有相应的异步io库的支持,否则表面上看似是协程,但实际上被io阻塞后依然是线程切换。这些阻塞的地方包括文件io、网络io、系统调用,runtime对协程的调度必须处理好这三方面才算是真正的协程,像golang一样的协程才有意义。
语言层面支持后,生态慢慢就会有的。像python的asyncio,现在基本都有了
dwingo
dwingo

引用来自“一码千里”的评论

如果仅仅是语言层面的协程根本没卵用!协程一定要有相应的异步io库的支持,否则表面上看似是协程,但实际上被io阻塞后依然是线程切换。这些阻塞的地方包括文件io、网络io、系统调用,runtime对协程的调度必须处理好这三方面才算是真正的协程,像golang一样的协程才有意义。

引用来自“dwingo”的评论

其实OS一般很少提供异步调用, 即使是golang也不得不用专门的线程来把这些同步调用封装成异步.

引用来自“wei2011”的评论

同意。除了网络,文件的io操作系统就只提供阻塞操作,都是用线程包装的
关于网络, windows的iocp确实是异步的(虽然内核也有可能开线程同步轮询), 而linux的epoll依然是同步调用, 只是可以同时等待很多连接并可指定等待的超时时间而已, 要么在某线程频繁轮询,要么开新线程等待.
wei2011
wei2011

引用来自“一码千里”的评论

如果仅仅是语言层面的协程根本没卵用!协程一定要有相应的异步io库的支持,否则表面上看似是协程,但实际上被io阻塞后依然是线程切换。这些阻塞的地方包括文件io、网络io、系统调用,runtime对协程的调度必须处理好这三方面才算是真正的协程,像golang一样的协程才有意义。

引用来自“dwingo”的评论

其实OS一般很少提供异步调用, 即使是golang也不得不用专门的线程来把这些同步调用封装成异步.
同意。除了网络,文件的io操作系统就只提供阻塞操作,都是用线程包装的
周波-RememBerBer
周波-RememBerBer
JetBrains的战斗力真强
dwingo
dwingo

引用来自“一码千里”的评论

如果仅仅是语言层面的协程根本没卵用!协程一定要有相应的异步io库的支持,否则表面上看似是协程,但实际上被io阻塞后依然是线程切换。这些阻塞的地方包括文件io、网络io、系统调用,runtime对协程的调度必须处理好这三方面才算是真正的协程,像golang一样的协程才有意义。
其实OS一般很少提供异步调用, 即使是golang也不得不用专门的线程来把这些同步调用封装成异步.
行走在赤道
行走在赤道

引用来自“一码千里”的评论

如果仅仅是语言层面的协程根本没卵用!协程一定要有相应的异步io库的支持,否则表面上看似是协程,但实际上被io阻塞后依然是线程切换。这些阻塞的地方包括文件io、网络io、系统调用,runtime对协程的调度必须处理好这三方面才算是真正的协程,像golang一样的协程才有意义。
嗯,很有道理。但是这些 kotlin 并不缺少这些。异步io这不用说了java在多少年前就已经支持了。web 框架官方也在研发 ktor,数据库现在也有研发的 jasync-sql。当然这还只是在初期,不过发展是很迅速的。
一码千里
如果仅仅是语言层面的协程根本没卵用!协程一定要有相应的异步io库的支持,否则表面上看似是协程,但实际上被io阻塞后依然是线程切换。这些阻塞的地方包括文件io、网络io、系统调用,runtime对协程的调度必须处理好这三方面才算是真正的协程,像golang一样的协程才有意义。
平安OSC
平安OSC

引用来自“Doeeking”的评论

看一下它的源码仓库,发行与分支比其他的语言多的多,整体感觉乱的说

引用来自“orpherus”的评论

daily build多就是乱?

引用来自“Doeeking”的评论

感觉上,你可以对比下go`rust的仓库瞧瞧

引用来自“DevidGe”的评论

用都没用就拿表面说事,显得自己很牛逼,其实很肤浅

引用来自“Doeeking”的评论

本来就肤浅呀,哪像你这么XX.肤浅就不没有评论的自由吗?世界不是只有一种声音,S**X
没说不让你评论,只是说你这样就来评价一门编程语言显得很肤浅😑
Doeeking
Doeeking

引用来自“Doeeking”的评论

看一下它的源码仓库,发行与分支比其他的语言多的多,整体感觉乱的说

引用来自“orpherus”的评论

daily build多就是乱?

引用来自“Doeeking”的评论

感觉上,你可以对比下go`rust的仓库瞧瞧

引用来自“DevidGe”的评论

用都没用就拿表面说事,显得自己很牛逼,其实很肤浅
本来就肤浅呀,哪像你这么XX.肤浅就不没有评论的自由吗?世界不是只有一种声音,S**X
orpherus
orpherus
你们还在讨论要不要用的时候,我已经发布到线上了。Kotlin 1.3真棒。
返回顶部
顶部