【问题标题】:What are the downsides of using non-managed threads in a managed environment?在托管环境中使用非托管线程有什么缺点?
【发布时间】:2010-08-09 15:32:21
【问题描述】:

在像 weblogic 应用服务器这样的托管环境中创建自己的线程有什么缺点?
每当我在应用程序服务器中工作时,我总是使用托管线程(使用 WorkManager api)。
但是,我不清楚在应用服务器内使用非托管线程可能导致的缺点或问题。

【问题讨论】:

    标签: multithreading weblogic threadpool appserver


    【解决方案1】:

    您只是失去了拥有托管线程的好处。 托管线程使您能够从具有最大和最小大小、增量速率的“池”分配线程,并且能够在每个池处于重负载时对请求进行排队。您还可以在运行时监视这些线程并控制它们的行为(例如,从 Weblogic 控制台)。

    【讨论】:

      【解决方案2】:

      当您在线程中运行少量代码并且它不等待其他线程(在锁等中没有大量使用)时,使用线程池没有问题。

      但是当你的线程需要长时间运行大量代码时(例如,等待锁、等待特定资源),使用线程池等不是一个好习惯。

      另一个问题是,当您将池用于运行程序主要逻辑的线程时,您可能会卡住,等待其他线程完成。这是另一种做法,您应该管理自己的线程。

      【讨论】:

        猜你喜欢
        • 2011-10-10
        • 2012-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多