我想知道jvm如何防止infinte循环崩溃系统。照顾它的内部过程。jvm如何防止infinte循环崩溃系统?
-3
A
回答
0
当我们在我们的操作系统上安装Java的时候,一些默认的内存大小被提供给JVM运行并执行它的过程。如果你的任何程序进入无限循环,那么它有可能使用完整的内存提供给JVM,但它不能使用超出该内存的内存,这只会让您的系统工作缓慢,因为线程数量和调用堆栈上存在的方法调用数量。但系统从不崩溃。这种情况下的一般错误是StackOverFlowError,这是java确保任何程序都不会使用超过分配给JVM的内存的方法。
+0
没有'调用堆栈中的语句'。 – EJP
1
虚拟机不会阻止,甚至也不希望它不知道它是否应该停止循环执行,除非它在循环内发现错误,而这些错误不是由内部逻辑处理的。可能是内存已满,堆栈溢出,IO错误。
一些应用程序打算有一个无限循环。例如,一个无限循环的调度程序应用程序,并检查其循环逻辑中的某些事件的时间表。或者一个持续等待网页请求的Web服务器。这些应用程序将无限循环,虚拟机必须允许它们这样做。只要逻辑能够“正确”处理所有事情,就像负责任地管理自己的资源一样。
这是应用程序的责任,以防止坏事发生在做无限循环,而不是虚拟机。虚拟机只是为了确保程序指令的执行正确,正如应用程序所预期的那样,并管理资源处理(内存,时间,I/O等)。
相关问题
- 1. 防止在kubernetes崩溃循环回退
- 2. Python for循环导致系统崩溃
- 3. 系统升级后jvm崩溃
- 4. 如何防止FolderBrowserDialog崩溃?
- 5. NSKeyedUnarchiver - 如何防止崩溃
- 6. 如何避免infinte循环
- 7. 我应该如何诊断和防止JVM崩溃?
- 8. 防止Express.js崩溃
- 9. 在Erlang系统中监控和防止Mnesia系统限制崩溃
- 10. infinte做while循环
- 11. JS - 防止从“崩溃”浏览器执行长循环javascript
- 12. 防止引导程序崩溃崩溃
- 13. 如何防止ViewFlipper循环
- 14. 如何防止GHCi从此“崩溃”?
- 15. 如何防止崩溃bootstrap-3菜单
- 16. 如何防止点击时Bootsrap崩溃?
- 17. 如何防止JXTreeTable根节点崩溃?
- 18. Hapi,好的logstash:如何防止崩溃?
- 19. 如何`清除`防止边缘崩溃?
- 20. 如何防止ShellFolder.getFolderColumns(...)崩溃很多
- 21. 微软Access - 如何防止VBA崩溃?
- 22. For循环崩溃
- 23. GCTaskThread JVM崩溃
- 24. JpCapWriter崩溃JVM
- 25. 如何防止Ajax溢出/服务器崩溃? (Arduino/ESP8266环境)
- 26. 准系统JVM环境
- 27. Treeview防止节点崩溃
- 28. 防止导航栏崩溃
- 29. 防止在UICollectionView中崩溃
- 30. 防止<img>崩溃
它并不妨碍它...而且无限循环不会使系统崩溃,它只会挂起(无响应)应用程序... – Codebender
为什么无限循环会使系统崩溃?也许如果系统正在等待你的程序做某事,并且无限循环会阻止你的程序做这件事。但现代系统通常不会等待程序做事。 – immibis
为什么无限循环会使系统崩溃? –