Ios 在Objective-C中同时修改C数组安全吗?
我正在探索iOS上的并发加速,并且刚刚开始使用Objective-C并发编程。我从一个简单的图像灰度缩放示例开始(我知道我可以用OpenGL更有效地实现这一点,但我认为这是一个足够好的大数据集示例)Ios 在Objective-C中同时修改C数组安全吗?,ios,objective-c,c,arrays,concurrency,Ios,Objective C,C,Arrays,Concurrency,我正在探索iOS上的并发加速,并且刚刚开始使用Objective-C并发编程。我从一个简单的图像灰度缩放示例开始(我知道我可以用OpenGL更有效地实现这一点,但我认为这是一个足够好的大数据集示例) 基本上,我将把图像分成不同的象限,并将一组块排队,每个块都有自己的象限进行计算。我将数据存储在一个简单的UInt8*imageData中数组,我想知道我是否可以同时访问这个数组。如果没有,是否有另一个数据结构允许我这样做?只要线程接触到它的不同部分,您就可以了。好的,很高兴听到这个消息。谢谢同时从不
基本上,我将把图像分成不同的象限,并将一组块排队,每个块都有自己的象限进行计算。我将数据存储在一个简单的
UInt8*imageData中代码>数组,我想知道我是否可以同时访问这个数组。如果没有,是否有另一个数据结构允许我这样做?只要线程接触到它的不同部分,您就可以了。好的,很高兴听到这个消息。谢谢同时从不同的线程读取是可以的。无论有多少线程同时读取和写入,它都不会损害数组。当然,如果一个正在读取的线程“看到”由于另一个线程同时写入而导致的不一致数据,这对整个程序来说可能是一个问题,但数组本身不会在意。只要不同内核处理的数组部分沿着缓存线边界分开,事情就应该可以正常工作。