我看到这样的评论



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 线程资源方面造成任何潜在的混淆。

    09-08 06:08
    查看更多