Java虚拟机最多可以维护多少个线程?
我在最初的问题中没有解释这一点,但我正在尝试对 JVM 进行基准测试,并想尝试看看它可以同时维护多少个线程。
在循环中创建线程直到引发异常是一种选择,但是,我想知道是否有更好的方法来执行此操作。
您的操作系统和硬件配置会施加一些限制。
要增加并发线程数,您应该降低默认堆栈大小java -Xss 64k
.
- A Oracle 32 bit JVM will default to 320kb http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#threads_oom stack size per thread.
- 对于具有 2GB 可寻址内存的 32 位 JVM,这将为您提供最多 6.5k 个线程。
- A Oracle 64 bit JVM will default to 1M http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#threads_oom stack size per thread.
- 使用默认值,每 GB 内存将获得 1024 个线程。
- For Linux only:
-
ulimit -a
将为您提供用户进程和内存的配置限制
- 在 Linux 中你只能获得 32k 个唯一的 PID
cat /proc/sys/kernel/pid_max
- 最多 32k 个进程。
- 你只会得到 255k 线程
cat /proc/sys/kernel/threads-max
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)