相关疑难解决方法(0)

Java VM可以支持多少个线程?

Java VM可以支持多少个线程?这是否因供应商而异?通过操作系统?其他因素?

java multithreading

202
推荐指数
5
解决办法
18万
查看次数

在4GB iMac OSX 10.6.3 Snow Leopard(32位)上无法通过Java获取2542个Threads

我正在运行以下程序,试图找出如何配置我的JVM以获得我的机器可以支持的最大线程数.对于那些可能不知道的人,Snow Leopard附带Java 6.

我尝试使用默认值启动它,以及以下命令行,无论JVM选项设置为什么,我总是在线程2542处获得内存不足错误.

java TestThreadStackSizes 100000
java -Xss1024 TestThreadStackSizes 100000
java -Xmx128m -Xss1024 TestThreadStackSizes 100000
java -Xmx2048m -Xss1024 TestThreadStackSizes 100000
java -Xmx2048m -Xms2048m -Xss1024 TestThreadStackSizes 100000
Run Code Online (Sandbox Code Playgroud)

无论我通过什么,我得到相同的结果,在2542年内存不足错误

public class TestThreadStackSizes
{
    public static void main(final String[] args)
    {
        Thread.currentThread().setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
            public void uncaughtException(final Thread t, final Throwable e)
            {
                System.err.println(e.getMessage());
                System.exit(1);
            }
        });
        int numThreads = 1000;
        if (args.length == 1)
        {
            numThreads = Integer.parseInt(args[0]);
        }

        for (int i = 0; i < numThreads; i++)
        {
            try
            { …
Run Code Online (Sandbox Code Playgroud)

java memory windows macos multithreading

9
推荐指数
1
解决办法
9363
查看次数

标签 统计

java ×2

multithreading ×2

macos ×1

memory ×1

windows ×1