java线程

yz_1998 2017-03-22 09:12:08
在博客中看到一句话
“在java中,每次程序运行至少启动2个线程。一个是main线程,一个是垃圾收集线程。因为每当使用java命令执行一个类的时候,实际上都会启动一个JVM,每一个JVM实习在就是在操作系统中启动了一个进程。”
每当执行一个类,就会启动一个进程?
类之间的调用在进程上是怎么体现的呢?
...全文
125 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zs808 2017-03-23
  • 打赏
  • 举报
回复
其实就JDK 1.7中的HotSpot虚拟机来说的话,执行一个HelloWorld需要至少3个线程: 1.main线程,用来执行main方法的主线程 2.Finalizer线程,用来执行FinalizerReferance的清理操作 3.ReferenceHandler线程,用来维护ReferanceQueue的线程 其中main线程会在整个应用程序域中执行,休眠与唤醒是由用户决定 Finalizer与ReferenceHandler在启动时会处于休眠状态,由GC唤醒。 并不是执行一个类,就启动一个线程。Java中线程是由代码创建,由JVM申请,操作系统+JVM调度的。如果Java代码里不申请线程,一般情况下是不会创建新的用户线程的。 至于你说的“类之间的调用在进程级别是怎么体现的”,很模糊,lz能否补充说明一下?
安正勋 2017-03-23
  • 打赏
  • 举报
回复
如果类中有主函数,即main方法的时候,就会至少启动一个主线程。至于如何将类之间调用提现在线程中,个人感觉可以通过日志,在控制台查看。
一剑侵心 2017-03-23
  • 打赏
  • 举报
回复
他说的是“Java命令启动一个类”,用Java命令启动的话,其实就是启动了那个类里的main方法。并不是你理解的启动一个类就是启动一个进程。

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧