objective-c - Objective C - 后台执行选择器并且分离新线程选择器?

标签 objective-c multithreading pthreads nsthread

detachNewThreadSelector和performSelectorInBackground都用于在后台调用方法。

这两种方法有什么区别吗?或者它们的工作方式相同吗?

最佳答案

它们本质上是相同的,但范例略有不同。他们在幕后做着完全相同的事情。唯一真正的区别是 -[performSelectorInBackground:withObject:] 遵循所有其他 performSelector 样式方法,因为它们是在 NSObject 上定义的,并且您实际上定义了您希望执行的选择器的消息。

一般来说,您几乎不需要调用这些方法中的任何一个。优先使用 Grand Central Dispatch 或 NSOperation 和 NSOperationQueue 来分解其他线程上昂贵的操作。 GCD 和 NSOperation 类都为您提供内存管理、线程池管理以及使用旧式调度方法时您会错过的许多其他功能。

关于objective-c - Objective C - 后台执行选择器并且分离新线程选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5148980/

相关文章:

objective-c - 使用 GCDAyncSocket 将任意信息与套接字相关联

.net - 多次加载 Dll 以允许 .Net 中的多线程

c++ - 为什么 pthread_mutex_t 在尝试通过来自两个不同进程的共享内存进行锁定时会出现段错误?

ios - 新的引用 socket ,查看 UIviewcontroller

ios - 导航栏后退按钮不起作用

c++ - 多线程和 pthread_join

c++ - 标准的 atomic bool 和 atomic flag 之间的区别

c++ - 销毁锁定的互斥锁时 pthread_mutex_destroy 的正确行为是什么

linux:每隔一秒执行一次线程

ios - 将图像转换为 iOS 中的四个投影点