除了繁重的处理之外,当您的UI响应速度不太快时,是否应该主要使用多线程? 还是有其他考虑因素?我如何知道我的应用程序是否应该具有多线程?
线程在ios中的重要应用之一是在网络通信期间。整个应用程序是与服务器的通信,如果您想在UR UI上显示繁忙视图,则需要在这种情况下创建线程以在后台线程中执行网络通信。
在IOS 5中,您可以选择GCD(Grand Central Dispatch)而不是线程来执行相同的功能。
基本上,在iOS
开发中,当您不想影响您UI
需要很长时间才能完成的process
时,会使用Threads
。 例如,当您connection
解析XML,JSON,图像数据等时,您不想停止用户interaction
那时您可以使用threads
。
您可以使用 NSThread
启动线程。
使用线程之前要记住的事项 -
- 切勿在线程中进行图形更改。如果需要
在线程中,您只能在main thread
上执行。 - 切勿在辅助
thread
中使用NSTimer
,因为您的thread
可能会在执行之前完成timer
因此计时器可能无法运行。
每当您想执行长process
时,都可以使用 thread
.
在ios中使用线程是为了确保最终用户的无喧嚣和无缝体验。每当想要通过网络提取某些资源(例如解析或数据检索)并且不希望 UI 受到影响时,都可以实现线程,因为应用程序将在主线程上运行,而 Web 操作将在自定义线程上运行。
当您需要并发操作或同时操作时,例如在游戏中,当您同时在同一对象上有多个动画时,您可能希望使用该线程。可能有相当多的方案可能需要线程。
您可以阅读 Apple 的并发编程指南
和线程管理
但是线程可能是应用程序中的开销,因为它需要内存分配,并且线程上的大型操作可能会影响性能,因此在无法避免时使用它。
您可以使用NSThread,NSOperations来创建线程。GCD 现已弃用。