Iphone 使用多线程时这是内存管理问题吗?

Iphone 使用多线程时这是内存管理问题吗?,iphone,multithreading,Iphone,Multithreading,示例:在我的主线程(没有做任何特殊操作的线程)中,我调用一个选择器在后台线程中执行。所以有了新的线索,对吗?现在,在这个背景线程中,我创建了一个保存图像数据的新对象。接下来,我使用这个对象,并想让它保持一段时间。如何存储对该对象的引用,以便稍后释放它?或者,只要该对象存在,线程就会处于活动状态吗?线程如何与在其中创建的对象相关? 也许有人可以用清晰的语言来解释这一点:-)存储位置和线程创建是两个独立的概念。不管是哪个线程创建了一个对象,不管是谁最终“拥有”它,还是以后什么时候发布它 不幸的是,您

示例:在我的主线程(没有做任何特殊操作的线程)中,我调用一个选择器在后台线程中执行。所以有了新的线索,对吗?现在,在这个背景线程中,我创建了一个保存图像数据的新对象。接下来,我使用这个对象,并想让它保持一段时间。如何存储对该对象的引用,以便稍后释放它?或者,只要该对象存在,线程就会处于活动状态吗?线程如何与在其中创建的对象相关?
也许有人可以用清晰的语言来解释这一点:-)

存储位置和线程创建是两个独立的概念。不管是哪个线程创建了一个对象,不管是谁最终“拥有”它,还是以后什么时候发布它

不幸的是,您的问题没有明确的答案,但我首先要考虑这个对象是否是单例对象,或者它是否是可以清除的缓存项,或者它是否是需要异步传递回其他选择器的结果对象

如果是单独的,则将其置于静态VAR中,并且永远不释放它(或者,考虑响应低内存警告而这样做)

如果是缓存,则在插入项目时让缓存拥有该项目,这样您就不必担心它。您可能需要一个自动释放池来执行此操作,但在使用自动释放和线程时要小心,因为每个线程都有自己的自动释放池,在不同的时间被耗尽


如果它是您需要传回给另一个调用者的对象,您希望在返回时自动释放它,并让调用者获取项目的所有权。

您使用的是什么语言/平台?