您的位置:首页 > 编程语言

多线程编程摘录(二): 线程管理(3)

2016-07-26 13:30 232 查看
线程的主体入口点 :

Objective - C
框架链接的应用程序,通常在它们的每一个线程必须创建至少一个自动释放池。 

如果应用程序使用管理模型,即应用程序处理的
retain 和
release对象,那么自动释放池捕获任何从该线程
autorelease
的对象。

在你编写线程主体入口的时候第一件事情就是创建一个自动释放池。同样,在你的线程最后应该销毁该自动释放池。该池保证自动释放。虽然对象被调用,但是它们不被
release 直到线程退出。 

 

如果应用程序使用的垃圾回收机制,而不是管理的内存模型,那么创建一个自动释放池不是绝对必要的。在垃圾回收的应用程序里面,一个自动释放池是无害的,而且大部分情况是被忽略。允许通过个代码管理必须同时支持垃圾回收和内存管理模型。在这种情况下,内存管理模型必须支持自动释放池,当应用程序运行垃圾回收的时候,自动释放池只是被忽略而已 

 

因为高级的自动释放池不会释放它的对象直到线程退出。长时运行的线程需求新建额外的自动释放池来更频繁的释放它的对象。比如,一个使用
run loop
的线程可能在每次运行完一次循环的时候创建并释放该自动释放池。更频繁的释放对象可以防止你的应用程序内存占用太大造成性能问题。 

异常处理 :

最好的办法是在异常发生的地方捕获并处理它,但是如果在你的线程里面捕获一个抛出的异常失败的话有可能造成你的应用程序强退。在你线程的主体入口点安装一个
try/catch
模块,可以让你捕获任何未知的异常,并
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  线程入口点