为什么java -Xss不起作用?

时间:2014-10-07 13:08:26

标签: java linux multithreading jvm limits

我有一个古老而特殊的Linux版本:

  

Linux版本2.4.32,gcc vercion 2.95.4

使用旧的JDK(版本1.6.0_13)和一个简单的程序:

package threadtest;

/**
 * tim
 * 01.10.2014.
 */
public class ThreadCounter {
    private static class SleepRunnable implements Runnable {
        @Override
        public void run() {
            try {
                while (true) {
                    Thread.sleep(60 * 1000);
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) throws InterruptedException {
        try {
            for (int i = 0; i < Integer.MAX_VALUE; i++) {
                System.err.println("Thread started: " + i);
                new Thread(new SleepRunnable()).start();
            }
            Thread.sleep(60 * 1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.exit(1);
    }
}

当我启动程序(-server -Xms256M -Xmx256M -XX:MaxPermSize=64M -Xss#k)时,选项-Xss并不重要(-Xss64k or -Xss2G)。看起来堆栈大小总是2米。

ulimits -s - &gt;无限
在/etc/security/limits.conf中:

*   soft    nproc   65535
*   hard    nproc   65535
*   soft    nofile  65535
*   hard    nofile  65535
*   soft    stack   320
*   hard    stack   320

我做错了什么?

0 个答案:

没有答案