使用Reference类时会发生什么和多少开销?

时间:2009-11-27 21:01:54

标签: java performance multithreading reference daemon

每当我们使用任何Reference类(如

)创建引用对象时,我都会看到有一个守护程序线程在运行
 WeakReference, 
 FinalReference, 
 SoftReference, 
 PhantomReference,
 Referemce

如果我们有分层线程结构,那么在每个级别都会启动一个额外的守护程序线程。

2 个答案:

答案 0 :(得分:2)

对于大多数应用程序,我希望开销非常小。除非你知道这是一个问题我不会担心。我从未见过参考文献在个人资料中显示为问题,而且我使用不同的分析器已有10年了。

答案 1 :(得分:1)

我认为这成为一个问题的唯一方法就是你的线程数量增长到2位数以上。

非常粗略地说:

  • 10个线程将在无法察觉的
  • 旁边
  • 100应该没问题,因为他们大多只是在等待并且每个人都在咀嚼一些内存
  • 1000会让您的系统头疼,因为其他地方会缺少这些资源
  • 10000会让你的系统瘫痪,如果不是彻底杀死它。