2012-12-18 78 views
0

我试图优化一段代码,从硬盘加载大量图像,并对其进行一些计算。我第一次尝试加速的方法是创建一个NSOperationQueue加载并为每个图像分别执行NSOperations计算。有没有办法在Objective-C中自动运行代码?

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

其中一个原因可能是由于创建NSOperations并将它们添加到queue而导致的开销。另一个可能的原因是硬盘驱动器没有设计用于多线程工作,所以不是逐个读取文件,而是需要在扇区之间来回跳转。

所以我的问题是,如果有任何的方式来运行OBJ-CÇ代码原子,这样当一个NSOperation读取文件时,它不会被某些操作试图读取另一个文件不安,但仍然所有NSOperations可以对他们的图像做他们的计算?

回答

2

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

Here是它

+0

感谢您指出。对我最有用的一章是[使用调度信号量来规范有限资源的使用](http://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationQueues/OperationQueues.html# // apple_ref/DOC/UID/TP40008091-CH102-SW24) – Enie

0

看看在NSLock类的好苹果直营店。它允许你实现关键部分。

相关问题