gpt4 book ai didi

ios - NSMutableArray 上的@synchronized 是否也对其元素产生同步效果?

转载 作者:行者123 更新时间:2023-11-29 12:35:30 25 4
gpt4 key购买 nike

如果一个NSMutableArray被@synchronized同步了,那数组中的元素呢?它们也同步了吗?

例如,我通过@synchronized(array) 锁定数组以获取该数组中的一个元素,我能否确保我得到的元素不会被更改(比如某些属性值的更改)元素)在我访问它的过程中被其他线程?

或者除了锁定数组之外,我还必须再次锁定元素以防止其他人更改元素的属性?

谢谢

最佳答案

认为锁定是保护代码执行而不是保护共享数据的方法会好得多。

@synchronized (mutable array) {} block 不保护任何数据,它只是确保同一个 block 不会被多个线程同时执行。将可变数组对象放在括号内通常表示“锁定范围”。也就是说,说“这个锁对象只与这个对象相关联”。

因此,使用@synchronized 最简单和最安全的方法是@synchronized (self)。在这种情况下,它清楚地表明,“此类一次只能由一个线程访问”。

If a NSMutableArray is synchronized by the @synchronized, What about the elements in the array? are they also synchronized?

答:没有

关于ios - NSMutableArray 上的@synchronized 是否也对其元素产生同步效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26461445/

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