Kotlin/Native v0.8 发布,提供更安全的并发编程支持 - 开源中国社区
Float_left Icon_close
Kotlin/Native v0.8 发布,提供更安全的并发编程支持
局长 2018年07月12日

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

局长 局长 发布于2018年07月12日 收藏 3

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

  • 更安全的并发编程

  • 扩展 stdlib 功能

  • 更好的 iOS 开发支持

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

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

更好的并发支持

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

例如,以下代码

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/

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:Kotlin/Native v0.8 发布,提供更安全的并发编程支持
分享
评论(11)
精彩评论
3

引用来自“xiaolei123”的评论

kotlin1.3在憋一个大招

引用来自“Tinian”的评论

有啥大招

引用来自“DevidGe”的评论

同问
放个香屁
2
scala-native 表示我先来的啊,我还可以抢救一下啊
2
置顶了,看来 @红薯 要用 Kotlin 重写 OSC 了。
1
是gc还是arc定了吗?
1
kotlin1.3在憋一个大招
最新评论
0
kotlin大法好,kotlin天下无敌,kotlin天下第一。
2
scala-native 表示我先来的啊,我还可以抢救一下啊
0
kotlin 好像要用 inline class 解决值类型的问题? 还会顺便添加 UInt 系列基元类型. 比 Java 高明 1 光年.
0

引用来自“swiftplus”的评论

是gc还是arc定了吗?
引用计数只是临时顶上,至少让垃圾可回收,性能比较差。
0
能直接编译成本地代码?这个牛x了
2
置顶了,看来 @红薯 要用 Kotlin 重写 OSC 了。
1
是gc还是arc定了吗?
3

引用来自“xiaolei123”的评论

kotlin1.3在憋一个大招

引用来自“Tinian”的评论

有啥大招

引用来自“DevidGe”的评论

同问
放个香屁
0

引用来自“xiaolei123”的评论

kotlin1.3在憋一个大招

引用来自“Tinian”的评论

有啥大招
同问
0

引用来自“xiaolei123”的评论

kotlin1.3在憋一个大招
有啥大招
1
kotlin1.3在憋一个大招
顶部