什么是Kotlin/Native的.freeze()?

Eug*_*nko 5 kotlin kotlin-native

我在Kotlin/Native中看到了另一个函数,它在Kotlin JVM或JS中不存在.它是什么?

Vin*_*ing 6

来自Kotlin native的Concurrency文档

冻结是一种运行时操作,通过修改对象标头使给定的对象子图不可变,以便将来的变异尝试导致抛出InvalidMutabilityException.它很深,所以如果一个对象有一个指向另一个对象的指针 - 这些对象的传递闭包将被冻结.冷冻是单向转换,冷冻物体不能解冻.Frozen对象有一个很好的属性,由于它们的不变性,它们可以在多个worker/threads之间自由共享,而不会破坏"可变XOR共享"不变量.