我看到这样的评论
在Sun Java Forums上
在我的应用程序中,最初我们计划使用线程,但是后来,我们决定不再需要线程,因此我们只调用run()而不是start()。我们是否需要为新的threadClass(..)做手动GC?
我的tomcat启动设置
-Xms1024m -Xmx1024m -XX:MaxPermSize=450m
最佳答案
为什么首先要创建Thread
?
您的代码应改为实现 Runnable
接口(interface)。
然后,当您决定要在线程中运行它时,只需以Thread
作为参数实例化Runnable
,然后在start()
对象上调用Thread
。
相反,如果您只想在当前线程中运行它,则只需在run()
对象上调用Runnable
。
这有几个优点:
Thread
对象Runnable
中,该代码在概念上更接近:您不是在编写某种特殊的线程,是吗?您只需编写一些可以执行/运行的代码。 Executor
,从而进一步抽象出最后但并非最不重要的一点是,您可以避免在是否创建 native 线程资源方面造成任何潜在的混淆。