在iPhone上,Objective-C中的多线程是如何工作的?

3

我对iPhone开发中的“线程”概念感到困惑:

  • 为什么需要/有什么用处?
  • 如何在Objective-C中使用线程?

3
这些是非常笼统的问题...你能否具体说明你想要实现什么?还是我们只是在帮你做作业? - Ashley Mills
@BradLarson 作为版主,您是在指一些“不具建设性”的问题吗?!!? :| - mfaani
4个回答

6
您需要在Objective-C中使用多线程是因为有时您需要让函数/代码在“后台”(即另一个线程)上运行。例如(但不仅限于),您可能需要从互联网下载大量数据(图片或视频)。
在这种情况下,如果在“主”线程上运行下载,将导致iPhone在下载完成之前冻结。因此,您可以使用多线程来下载数据并同时让iPhone工作。
在Objective-C中有很多方法可以实现多线程。说实话,您需要自己查找,我们不会只是喂你答案。
需要查找的内容包括:NSURLConnection和方法[self performSelector:onThread:...]

0

实现并发的推荐方式是使用队列。

对于那些只想在单独的线程中执行方法/块的人 - 使用以下代码:

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
   [self longMehtod];
});

如需更多信息,请阅读苹果公司的并发编程指南


0

1
这些不是竞争性技术。线程是“并发编程”的一部分,需要充分理解才能成功构建多线程应用程序。在这方面,苹果的文档可能有点误导性,当他们宣称“远离线程”之类的话时。 - Nikolai Ruhe

0
更简单的说,如果你想要并行运行一些方法(进程),你可以使用线程。一个线程在做一件事情,而另一个线程在做其他事情。因此,如果你需要在另一件事情正在进行时完成某些任务,你可以使用线程。
例如: 线程1:向服务器发送请求 线程2:准备要发送的信息(图像、文本等)
总的来说,这就是线程的目的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接