单独的Java线程中的OutOfMemoryError

jev*_*von 5 java multithreading memory-management out-of-memory

考虑到我有一个主线程,它在新线程中执行一个新的Runnable.现在,当新的Thread正在执行时,Java VM会耗尽内存并抛出OutOfMemoryError.

怎么了?目标线程是否停止?主线程会继续吗?当新的线程崩溃时,VM会从中回收内存并继续执行吗?

Tom*_*ine 7

其中一个线程将OutOfMemoryError在a的分配期间抛出new.为避免颠簸,抛出错误后可能会有大量内存空闲.所以其他线程可以继续,并且不太可能在一段时间内OOME.

如果未捕获OOME,则线程将退出并调用未捕获的异常处理程序.退出时,线程和相关对象将像往常一样可用于垃圾收集(不受其他方式引用).