首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kotlin/Native v0.8 发布,提供更安全的并发编程支持

Kotlin/Native v0.8 已正式发布,该版本有以下值得关注的更新:

  • 更安全的并发编程
  • 扩展 stdlib 功能
  • 更好的 iOS 开发支持

此外该版本还包含许多错误修复和优化。

GitHub 发布主页?https://github.com/JetBrains/kotlin-native/releases/tag/v0.8

更好的并发支持

在 v0.8 之前,Kotlin/Native 应用程序将单例对象状态保持为特定执行的线程的本地状态,因此不同线程上的单例对象的状态可能是非同步的。现在,扩展了冻结单例对象的概念,允许共享的不可变状态。

例如,以下代码

代码语言:javascript
复制
object?Config?{
????var?width:?Int?=?10
????private?set
????init?{
????????val?file?=?fopen("config.txt",?"r")
????????if?(file?!=?null)?{
????????????try?{
????????????????memScoped?{
????????????????????val?bufferLength?=?2?*?1024
????????????????????val?buffer?=?allocArray(bufferLength)
????????????????????while?(true)?{
????????????????????????val?nextLine?=?fgets(buffer,?bufferLength,?file)?.toKString()
????????????????????????if?(nextLine?==?null?||?nextLine.isEmpty())?break
????????????????????????val?records?=?nextLine.split('=')
????????????????????????if?(records.size?!=?2)?continue
????????????????????????val?key?=?records[0].trim()
????????????????????????val?value?=?records[1].trim()
????????????????????????when?(key)?{
????????????????????????????"width"?->?width?=?value.toInt()
????????????????????????}
????????????????????}
????????????????}
????????????}?finally?{
????????????????fclose(file)
????????????}
????????}
????}
}

将读取配置文件,并可以提供 Config.width 属性。 每个进程执行时将读取一次 Config 文件,并且可供任何线程或 worker 使用。 而一旦发布,该对象就会被冻结,并且不能再被修改(尝试修改将抛出 InvalidMutabilityException 异常)。

其他有关库的改进,以及对 iOS 开发支持的改进,请查看发布主页?https://blog.jetbrains.com/kotlin/2018/07/kotlinnative-v0-8-released/

  • 发表于:
  • 原文链接https://www.oschina.net/news/97917/kotlinnative-v0-8-released
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com