class MyClass
let myString = "string"
func myFunc() -> String {
return self.myString
}
}
鉴于永远不会更改myString
,myFunc
线程安全吗?
答案 0 :(得分:3)
通常,仅使引用为只读以使类具有线程安全性是不够的。您需要确保不能改变引用的对象。
您的功能是线程安全的。但是,将myString
设置为只读只是原因的一部分:另一部分是myString
是不可变类型的事实。
例如,尽管MyClass
是只读的,但myData
不是线程安全的:
class MyClass
let myData = Mutable()
func myFunc() -> Mutable {
return self.myData
}
}
class Mutable {
var array : [String]
func add(s:String) {
array.apppend(s)
}
}