sách gpt4 ai đã đi

java - 为什么应用程序遇到 OutOfMemoryError 时其他进程仍在运行

In lại 作者:行者123 更新时间:2023-12-01 13:12:23 26 4
mua khóa gpt4 Nike

我们在日志文件中遇到错误“java.lang.OutOfMemoryError:请求的数组大小超出 VM 限制”,并且此错误后也在运行其他进程

  1. 为什么出现上述错误后其他进程也在运行?

  2. 所有 java.lang.OutOfMemoryError 错误是否都会阻塞整个应用程序?

假设有 10 个线程,其中一个线程因 OutofMemory 错误而失败。在这种情况下,所有线程将被阻塞还是其他 9 个线程将继续该进程

记录器消息示例:

example...(QuartzScheduler.java:2166) - Job (DEFAULT.jobLaunchStatusPoller threw an 
exception. org.quartz.SchedulerException: Job threw an unhandled exception. [See nested
exception: java.lang.OutOfMemoryError: Requested array size exceeds VM limit] at
org.quartz.core.JobRunShell.run(JobRunShell.java:210) at
org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:546) Caused by:
java.lang.OutOfMemoryError: Requested array size exceeds VM limit [Mar 17 13:32:24]
[3578814] WARN [PollingScheduler_Worker-19] (JobExecutor.java:54) - Job Execution
Started.

Cảm ơn.

1 Câu trả lời

看看:Effects of uncaught exceptions on threads from Quartz's SimpleThreadPool

Quartz 为其线程设置一个未捕获的异常处理程序,该处理程序捕获 Throwable 并依次用新线程重新填充其线程池。

正常情况下(没有 quarz 或任何其他设置的 UncaughtExceptionHandler),错误将传播到默认处理程序,该处理程序将退出虚拟机并打印堆栈跟踪。所以在你的情况下:

  1. 参见上文,仅删除失败的线程

  2. 使用quartz,所有OutOfMemoryError都会以相同的方式处理(与所有其他错误一样),但是,大多数其他错误通常会使您的虚拟机处于不一致的状态。 “请求的数组大小超出 VM 限制”是较罕见的错误之一,这种错误是完全可以恢复的,因为它们只影响一个线程。

关于java - 为什么应用程序遇到 OutOfMemoryError 时其他进程仍在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22748501/

26 4 0
Bài viết được đề xuất: java - 禁用 JTextField 的边框
Bài viết được đề xuất: algorithm - 写成[(m + n)^m]/m有效吗!作为 O([n/m]^m) 作为其宽松的上限?
Bài viết được đề xuất: java - Java 上的 5x5 盒子数组?
Bài viết được đề xuất: java - 安卓、Java : Bundles & Views for Fragments
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com