我有以下代码:
{
NSObject *_object;
}
- (instancetype)init {
if (self = [super init]) {
_object = [[NSObject alloc] init];
}
return self;
}
- (NSObject*)object {
return _object;
}
如果在 init
完成并返回后从第二个线程调用方法 object
,我如何知道对 _object
的赋值init
将是可见的,它实际上并没有返回未分配的指针?
保证这一点的内部机制是什么?
最佳答案
代码的线程安全性取决于它的使用方式,而它的预期使用方式本质上是线程安全的。您不应该传递部分构造的对象,因此分配和初始化([[... alloc] init]
或 new
)应该限制在单个线程中然后传递给其他线程。
关于ios - 如何在 `init` 中初始化线程安全变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29122978/