如何通过生成线程来命中java.lang.OutOfMemoryError?

Oh *_*oon 0 java multithreading out-of-memory

我遇到了这个博客站点,作者在机器抛出java.lang.OutOfMemoryError之前测试了最大线程数.但是,在我的下面的测试代码中,尽管产生了任意大的线程,但我无法遇到错误.

    for (int i = 0; i < 1000000; i++) {
        Thread thread = new Thread(new Car());
        thread.setName(Integer.toString(i));
        thread.start();
    }
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 8

尝试在线程内部休眠,否则可能会过快地收集垃圾,如示例代码所示:

Thread t = new Thread(new Runnable() {
    @Override
    public void run() {
        try {
            while (!Thread.interrupted()) {
                Thread.sleep(1000);
            }
        } catch (InterruptedException ignored) {
            //
        }
    }
});
Run Code Online (Sandbox Code Playgroud)