YU *_*ENG 21 objective-c nsthread ios
我是ios开发的新手.我有以下问题:
这两者之间有什么不同.
我知道当我们使用performSelectorInBackground时,我们创建了一个新的NSThread.但是当我们使用dispatch_group_async时却不一样吗?因为如果我们创建多个dispatch_group_async,则意味着我们需要在队列中提交多个块.这些块可能在不同的队列上运行.因此,当我们创建多个dispatch_group_async时,是否意味着我们创建了一个新线程?(因为块可能在不同的队列上运行)(我对NSThread和阻塞队列感到困惑.....)
谢谢!!
Rob*_*ier 33
performSelectorInBackground:决不.不要使用这种方法.它产生了无限数量的线程.即使在GCD可用之前,这也是一种可怕的方法.
performSelectorOnMainThread:嗯......从来没有,但仅仅是因为它不方便.这种方法没有什么大不了的.它没有那么有用dispatch_async().
GCD和旧performSelector…方法(以及NSThread一般)之间的区别在于GCD 为您管理线程池.通常,您应该避免使用Cocoa中的手动线程.相反,使用NSOperationQueue或GCD(dispatch方法).它们提供了更有用的队列抽象,而不是强制您手动管理线程.
请务必阅读Apple的"远离线程迁移"以获取更多信息.
| 归档时间: |
|
| 查看次数: |
7194 次 |
| 最近记录: |