0

我正在尝试优化一段代码,该代码从硬盘驱动器加载大量图像并对其进行一些计算。我第一次尝试加快速度是为每个图像创建一个NSOperationQueue单独的加载和计算。NSOperations

不幸的是,这并没有真正缩短所用时间。

一个原因可能是创建NSOperations并将它们添加到queue. 另一个可能的原因是硬盘驱动器不是为多线程工作而设计的,因此磁盘的标题需要在扇区之间来回跳转,而不是逐个读取文件。

所以我的问题是,是否有任何方法可以原子地运行obj-CC代码,这样当一个人NSOperation读取一个文件时,它不会受到试图读取另一个文件的某些操作的干扰,但仍然所有人都NSOperations可以对他们的图像进行计算?

4

2 回答 2

2

为什么不简单地使用GCD(Grand Central Dispatch)而忘记显式线程?

是一个很好的Apple指南

于 2012-12-18T11:45:28.400 回答
0

看看NSLock类。它允许您实现关键部分。

于 2012-12-18T11:46:58.870 回答