Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Re:关于多线程访问静态方法的问题 [Re:hganbo]
hganbo





发贴: 2
积分: 0
于 2005-01-17 14:18 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
项目总结:
终于把内存泄漏问题解决了,不是多线程访问静态函数的问题,事实证明只要在静态函数中没有处理多线程共享数据,就不存在着多线程访问同一个静态方法会出现资源冲突的问题,如果在静态方法中有访问多线程共享数据,就要小心多线程同步问题。

同时,在使用线程池进行开发时,要特别注意线程实例的资源释放问题,不要想当然的认为没有创建变量名来引用所创建的线程实例,线程在运行完就会自动释放资源,事实证明并没有释放。如果没有显示创建变量名引用线程实例,系统会自动创建一个隐藏变量来应用这个实例,会造成线程池运行完线程后依然没有释放资源的问题。

下面是我进行内存泄漏分析后的结果。

项目中使用了EDU.oswego.cs.dl.util.concurrent的线程池进行开发,使用线程池运行线程 ProcessThread 。
public class ProcessThread implements Runnable{ 略}

如果就这样使用线程池运行线程会造成严重的内存泄漏问题:
ThreadPool.getInstance().execute( new ProcessThread(messages[i]) );

代码更改后(如下所示),暂时就没有发现内存泄漏了
ProcessThread thread = new ProcessThread(messages[i]);
ThreadPool.getInstance().execute( thread );
thread = null;




JBuilder使用技巧

话题树型展开
人气 标题 作者 字数 发贴时间
22715 关于多线程访问静态方法的问题 hganbo 1449 2004-12-15 17:21
18379 Re:关于多线程访问静态方法的问题 tool 95 2004-12-31 07:47
18261 Re:关于多线程访问静态方法的问题 bwpc 46 2004-12-31 11:01
18284 Re:关于多线程访问静态方法的问题 colo007 7 2005-01-10 18:52
18689 Re:关于多线程访问静态方法的问题 bloodwolf 246 2005-01-13 15:58
18200 Re:关于多线程访问静态方法的问题 bwpc 187 2005-01-13 17:10
18325 Re:关于多线程访问静态方法的问题 hganbo 663 2005-01-17 14:18

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923