首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java守护进程线程是否与派生进程共享Heap或Perm Gen?

Java守护进程线程是否与派生进程共享Heap或Perm Gen?
EN

Stack Overflow用户
提问于 2012-09-12 21:46:09
回答 2查看 1.6K关注 0票数 1

如果我从我的程序(一个非守护进程)创建一个守护线程,堆和perm gen内存空间是与新线程共享还是重新分配?

如果守护程序线程拥有自己的空间,那么在创建新线程时是否会考虑JVM内存调优参数,如最大堆大小等?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-12 21:47:04

堆和perm gen内存空间是与新线程共享还是重新分配?

所有线程(守护进程状态并不重要)共享堆和perm内存空间。每个线程都有自己的堆栈空间,用来存储方法字段和调用堆栈。您可以通过changing JVM arguments调优分配的每线程堆栈空间的大小。但即使是这些堆栈区域也是一般JVM堆空间的一部分。

当线程在单独的CPU中运行时,它也有一个内存缓存。由于性能原因,使用了每CPU内存缓存,因此可以出于速度原因对本地CPU内存进行更新,而不必在每次访问时将信息同步到中央存储。但是这些缓存仍然对一般的JVM内存空间进行读写。

有关守护进程线程真正含义的更多信息,请参阅@Peter's answer

票数 8
EN

Stack Overflow用户

发布于 2012-09-12 22:04:58

守护程序线程和普通线程之间唯一重要的区别是它是否会阻止进程停止。普通线程使JVM保持运行,而守护进程则不能。

守护进程线程具有

  • 具有一个最大大小的相同堆。
  • 相同的perm gen,也具有一个最大大小。
  • 相同的线程具有相同的内存量。
  • 堆栈的相同的最大大小。

顺便说一句:其他的不同之处在于:

  • isDaemon()将返回守护程序将通过default.
    • will创建守护程序线程在线程转储中显示为守护程序。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12389661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档