0

我有一个带有 NSMutableData ivar 的自定义模型类,将由自定义 NSOperation 子类(使用 NSOperationQueue)访问。我认为我可以通过使用依赖项来保证从多个 NSOperations 对 ivar 的线程安全访问,并且我可以通过等待 Q 完成所有操作来保证我不会从其他代码(比如我的主应用程序线程)访问 ivar .

我应该使用非原子属性规范,还是让它保持原子性?对性能有显着影响吗?

4

3 回答 3

1

安德鲁,它是否重要取决于你在做什么。如果您的操作正在将电影上传到 youtube,并且每个操作都需要读取一次数据,那么它不会产生丝毫差异 - 只需将其保留为原子操作即可。

否则,您需要分析以查看它是否重要。如果您确定(您听起来不太确定)NSMutableData 永远不会同时从两个或多个线程访问(但是您这样做,锁定,屏障或只是等待),那么您不需要它是原子的。

于 2010-06-04T23:31:06.017 回答
0

Premature optimisation is the root of all evil.

Leave it atomic until you find out for sure that there is a performance issue.

于 2010-06-05T09:30:47.477 回答
0

If it's a mutable object then your biggest enemy is concurrent mutation, not inconsistent property access.

于 2010-06-05T09:41:54.020 回答