繁体   English   中英

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

[英]How does multithreading work in Objective-C on the iPhone?

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

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

您需要在目标c中进行多线程处理,因为有时您需要在后台运行函数/代码(在另一个线程上读取:)。 例如(但不明确)您可能需要从互联网上下载大量数据(图片或视频)。

在这种情况下,在'main'线程上运行下载将导致iphone在下载完成之前冻结。 所以你使用多线程下载数据并让iphone同时工作。

在objective-c中有很多方法可以进行多线程处理。 说实话,你需要自己查一下,我们不是来骗你。

要查找的内容是: NSURLConnection和方法[self performSelector:onThread:...]

更简单......如果你想平行运行一些方法(进程)你可以使用线程...一个线程正在做一个东西而另一个正在做其他东西...所以你可以使用线程如果你需要做什么时候做另一件事是做...示例:线程1:向服务器发送请求线程2:准备要发送的信息(图像,文本等)。 所以一般来说这就是线程的目的

最近,Apple建议程序员应该远离线程并使用具有更多优势,更好性能和更容易实现的替代解决方案; 它的并发编程:
http://developer.apple.com/library/mac/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008091

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

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

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

有关详细信息,请阅读Apple的“ 并发编程指南”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM