运行indefinatley的线程会导致内存泄漏吗?

时间:2011-08-17 14:17:50

标签: java multithreading

我有一个j2ee应用程序,其中我有一个类1,它启动多个线程T1,T2,T3。现在我也有一个webserrvice.Now我想要我的线程T1,T2,T3,应该是无限运行直到Web服务器已停止或我的应用程序已取消部署。我的线程内部连接到某些URL并执行一些操作以及与db相关的其他操作。

1)现在从servletContextListener调用启动我的线程的代码。我在tomcat控制台上看到一个警告,它可能导致内存泄漏。会不会有问题?
2)从我的线程我连接到porrt 80上其他服务器上的URL。这与我的本地端口发生冲突吗?

4 个答案:

答案 0 :(得分:0)

内存泄漏是由活动内容引起的。线程不太可能导致内存泄漏,而不是导致内存泄漏的主程序。

然而,通过拥有多个线程,不同步资源的可能性会增加。

答案 1 :(得分:0)

创建线程之类的资源可能会导致内存泄漏。但是,如果需要创建固定数量的线程,则不必考虑内存泄漏。

答案 2 :(得分:0)

我95%确定任何线程长时间运行都会遇到内存泄漏。内存泄漏与GC有关,最终确定不是线程。

只是因为你将你的连接定位到端口80并不意味着你从端口80启动你的通信。因为服务器总是必须在端口80上响应,你只能监听或发送端口80,而不是两者。传输必须来自其他一些港口。所以不,它不会与你当地的港口发生冲突。

答案 3 :(得分:0)

1)没有。长时间运行的线程不会导致内存不足。例外。只有当你忘记在该线程中关闭资源,释放内存等时。

2)没有。服务器在端口80上进行通信。客户端没有。