iphone - 在 Objective-C 中,如何安全地从一个线程填充数组,同时在另一个线程中读取数组?

标签 iphone objective-c

首先,我不太熟悉使用线程,而且我正在即时学习。 我有一个在线程 a 中使用并在线程 b 中填充的数组。我想要做的是找到在线程 a 中使用数组之前等待从线程 b 填充数组的最佳实践。

最佳答案

您可以在读取线程中复制数组,以便在读取时它不会更改,也可以@synchronize对数组的访问:

- (void) writer
{
    @synchronized(theArray)
    {
        [theArray addObject:foo];
    }
}

- (void) reader
{
    @synchronized(theArray)
    {
        for (id item in theArray)
            [item …];
    }
}

关于iphone - 在 Objective-C 中,如何安全地从一个线程填充数组,同时在另一个线程中读取数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/962598/

相关文章:

ios - UILabel 圆角在 iOS 7.1 中变得尖锐

ios - 获取在数组内部具有特定键的NSDictionary

ios - 摇晃后如何调用谷歌页面

ios - 是否可以仅从 UDID 获取其他设备信息?

iphone - 如何用十六进制数字初始化 uipicker

iphone - 如何发送 UIEvent TypeRemoteControl 事件?

ios - 为 UIImageView 旋转 180 度,并以相同的路线旋转回来

objective-c - 从 CGRect 中减去 CGRect——一个不包含另一个的最大部分

ios - 暂时移除NSLayoutConstraint?

iphone - 在为 iPhone 编程时如何保持 NSArray 对所有方法可用