GCD,NSOperationQueue,还是手动创建一个线程?

时间:2011-08-22 10:23:58

标签: iphone objective-c nsthread grand-central-dispatch nsoperationqueue

当您使用线程时,您有任何偏好吗?一般来说,要使用以下任何一种技术:

  • 手动创建新线程并使用run loop
  • 使用NSOperationQueue
  • 或使用Grand Central Dispatch和C版本以及dispatch_queue?

NSOperationQueue是否简化了所有内容,因此在我们需要创建异步函数时更好用?

2 个答案:

答案 0 :(得分:10)

我很懒,所以我的理念是选择最简单的解决方案来完成我需要的一切。 (我觉得这是拉里·沃尔所支持的“懒惰”,但有时我想知道。)

所以我的偏好顺序是:

  1. 异步方法调用
  2. NSOperationQueue
  3. Grand Central Dispatch
  4. 每一步都会增加复杂性和灵活性。如果您需要额外的灵活性,那么复杂性可能是值得的。

答案 1 :(得分:3)

我记得在WWDC 2010会话中,有人说GCD是要走的路,除非你正在使用目前不能很好地运行的API。

作为一般规则,我总是使用异步方法调用进行联网,并避免直接使用pthreads或NSThreads,除非绝对必要。