gpt4 book ai didi

iphone - 合成访问器中的 [_internal lock] 与 @synchronized(self) 相同吗?

转载 作者:行者123 更新时间:2023-12-03 16:34:01 25 4
gpt4 key购买 nike

有相当详细的记录表明 @synthesize 原子设置/getters 是用“某种东西”实现的,如下所示:

{
[_internal lock]; // lock using an object-level lock
id result = [[value retain] autorelease];
[_internal unlock];
return result;
}

我所遇到的情况,我想以原子方式访问两个属性(即不解锁之间的锁),所以我的第一直觉是使用 @synchronized(self) - 但是我一直找不到任何说明如果@synchronized(self) 使用相同锁作为原子 getter/setter。有谁知道他们这样做吗?

最佳答案

Apple 文档非常擅长的事情之一是准确指定契约(Contract)的内容。在这种情况下,the relevant part of the docs仅表示它是使用对象级锁锁定的。请注意,它没有说明它是哪个锁,因此您不能假设它与@synchronized(self)具有相同的锁定机制。 (很可能不是。)

关于iphone - 合成访问器中的 [_internal lock] 与 @synchronized(self) 相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3229832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com