Java开发网 |
注册 |
登录 |
帮助 |
搜索 |
排行榜 |
发帖统计
|
您没有登录 |
» Java开发网 » Java SE 综合讨论区
打印话题 寄给朋友 订阅主题 |
作者 | Re:关于多线程访问静态方法的问题 [Re:hganbo] |
hganbo
发贴: 2 积分: 0 |
于 2005-01-17 14:18
项目总结: 终于把内存泄漏问题解决了,不是多线程访问静态函数的问题,事实证明只要在静态函数中没有处理多线程共享数据,就不存在着多线程访问同一个静态方法会出现资源冲突的问题,如果在静态方法中有访问多线程共享数据,就要小心多线程同步问题。 同时,在使用线程池进行开发时,要特别注意线程实例的资源释放问题,不要想当然的认为没有创建变量名来引用所创建的线程实例,线程在运行完就会自动释放资源,事实证明并没有释放。如果没有显示创建变量名引用线程实例,系统会自动创建一个隐藏变量来应用这个实例,会造成线程池运行完线程后依然没有释放资源的问题。 下面是我进行内存泄漏分析后的结果。 项目中使用了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 |
已读帖子 新的帖子 被删除的帖子 |
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 |