189 8069 5689

iOS使用多线程提高数据并发访问之五-创新互联

你的线程入口

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、网络空间、营销软件、网站建设、余干网站维护、网站推广。

当启动线程时,你需要有一些代码来管理当前线程的状态,线程创建和执行的内存,还有在线程内部抛出的异常。原因是你新创建的线程会有自己的栈,它和默认的栈是不同的,如图 6-4。因此,你线程使用的内存和主线程使用的内存是不同的。异常也类似;它只会存储在你的栈中,并不会返回到主栈和主线程中。

iOS使用多线程提高数据并发访问 之五

有很多事情你需要记住:

  • Autorelease pool:管理autorelease对象

  • ExceptionHandler:管理线程运行过程中发生的异常

  • RunLoop:创建事件处理代码

我会讨论为什么要实现他们已经如何实现他们。

表格6-3 提供了一个简短的演示,让你复习一下创建和配置线程的主要技术,以及他们的优缺点。

iOS使用多线程提高数据并发访问 之五

Autorelease Pool

在应用的每一个线程中,你应该总是要有一个Autorelease Pool,通过把代码放在@autorelease中块中。这个pool会包含所有的autoreleased对象,当线程运行的时候。如果你没有调用返回一个autoreleased对象的方法,最好还是包含@autorelease,因为系统底层的frameworks和libraries也会创建和返回autoreleased对象。如果你有一个@autorelease,而从没使用它,一切依然能够正常运行。

如果你通过Xcode模板创建的应用,你会看到main方法中有下面的代码:

int main(int argc, char *argv[]) {

  @autoreleasepool {

      int retVal = UIApplicationMain(argc, argv, nil, nil);

  }

  return retVal;

}

@autorelease将会处理线程内部所有的autoreleased对象。你可能已经知道,autoreleased对象是

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前名称:iOS使用多线程提高数据并发访问之五-创新互联
网站URL:http://cdxtjz.cn/article/csidii.html

其他资讯