2015-07-03 32 views
-1

上面的代码只是一个例子。正如我们知道一次线程obj。完成任务后,我们不能再次启动它,为了重用,我们需要重新初始化线程obj。在示例 myThread重新初始化了3次,如果我继续增加重新初始化次数,那么它会花费更多的内存吗? 如果是的话那么该如何处理呢?什么是Android中Thread对象重新初始化的成本

回答

0

声明:我不知道Android,但...

您的活动创建新主题的频率如何?线程持续多久?创建线程有点贵。如果你不创建它们,很多时候,但如果要创建许多昙花一现的线程,可以考虑使用线程池代替无妨(例如,java.util.concurrent.ThreadPoolExecutor

+0

我正在开发的Android应用程序,涉及热敏打印等等我已经实施单独的线程服务进行打印。服务是单身。每次由服务收到的打印请求,如果线程为空或者没有运行,则首先检查线程是否运行,然后创建线程的新实例。 现在,它提供给用户许多打印请求。 如果他整天提供打印请求而未关闭应用程序,该怎么办? GC会管理清除不必要的线程引用吗? – user1983226

+0

@ user1983226,就像我说的,我不知道android。听起来你想要一个长时间运行的线程,所以我关于使用线程池的建议可能不适合你的需要。至于垃圾收集,一旦线程死亡,一个线程的堆栈将被回收。线程死后堆栈消失后,线程对象就像任何其他对象一样:当你的程序中没有变量引用它时,它将被回收。 –