【发布时间】:2010-08-09 15:32:21
【问题描述】:
在像 weblogic 应用服务器这样的托管环境中创建自己的线程有什么缺点?
每当我在应用程序服务器中工作时,我总是使用托管线程(使用 WorkManager api)。
但是,我不清楚在应用服务器内使用非托管线程可能导致的缺点或问题。
【问题讨论】:
标签: multithreading weblogic threadpool appserver
在像 weblogic 应用服务器这样的托管环境中创建自己的线程有什么缺点?
每当我在应用程序服务器中工作时,我总是使用托管线程(使用 WorkManager api)。
但是,我不清楚在应用服务器内使用非托管线程可能导致的缺点或问题。
【问题讨论】:
标签: multithreading weblogic threadpool appserver
您只是失去了拥有托管线程的好处。 托管线程使您能够从具有最大和最小大小、增量速率的“池”分配线程,并且能够在每个池处于重负载时对请求进行排队。您还可以在运行时监视这些线程并控制它们的行为(例如,从 Weblogic 控制台)。
【讨论】:
当您在线程中运行少量代码并且它不等待其他线程(在锁等中没有大量使用)时,使用线程池没有问题。
但是当你的线程需要长时间运行大量代码时(例如,等待锁、等待特定资源),使用线程池等不是一个好习惯。
另一个问题是,当您将池用于运行程序主要逻辑的线程时,您可能会卡住,等待其他线程完成。这是另一种做法,您应该管理自己的线程。
【讨论】: