`

进程可创建的最大线程数

 
阅读更多
最大线程数
 
限制该值的因素:
线程堆栈大小——》进程的最大内存——》操作系统位数
 
linux线程
 
查看默认的线程栈大小
ulimit -a
 
调整栈大小
ulimit -s
 
是否存在硬限制, /proc/sys/kernel/threads-max是否为硬限制?
cat   /proc/sys/kernel/threads-max: ?
echo   12000   >   /proc/sys/kernel/thread_max 
 
 
JVM线程
 
JVM线程堆栈
 应用程序中的每个线程都需要内存来存储器堆栈(用于在调用函数时持有局部变量并维护状态的内存区域)。每个 Java 线程都需要堆栈空间来运行。
 根据实现的不同,Java 线程可以分为本机线程和 Java 堆栈。除了堆栈空间,每个线程还需要为线程本地存储(thread-local storage)和内部数据结构提供一些本机内存。
 
JVM堆栈大小
-Xss128k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆 栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。
在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一 个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。
 
JVM heap与JVM私有内存、JVM线程堆栈大小间的关系及平衡。
线程栈的大小是个双刃剑,如果设置过小,可能会出现栈溢出,特别是在该线程内有递归、大的循环时
时出现溢出的可能性更大,如果该值设置过大,就有影响到创建栈的数量,如果是多线程的应用,就会
出现内存溢出的错误.
如果本身不需要创建太多的线程,但是还是义无返顾的出现了java.lang.OutOfMemoryError: unable to create new native thread  那么肯定是线程没关掉
分享到:
评论

相关推荐

    【C#】进程中最大线程创建数量分析

    多线程在当今软件开发中应用非常广泛,在实际开发过程中,发现很多不正确...本文将分别研究32位进程和64位进程下,可以创建最大线程数量及资源占用情况,供研发及设计人员参考。 研发环境:Win7 64位,.Net 3.5,VS2010

    Nachos设置线程id和限制线程数

    同时,为了限制线程数,系统可能有一个最大线程数的常量,当达到这个数量时,创建新线程的请求会被拒绝。 ```cpp // 在Nachos的全局变量中定义最大线程数 const int MAX_THREADS = 100; // 在Thread类的实现中 int...

    深入探讨linux下进程的最大线程数、进程最大数、进程打开的文件数

    在Linux操作系统中,进程的资源使用受到多个因素的限制,包括最大线程数、进程最大数以及进程可以打开的文件数。这些限制是由系统内核设定的,旨在保证系统的稳定性和资源的有效分配。 首先,我们来看进程的最大...

    Nachos实现id、限制线程数和按优先级调度算法 源码.rar

    在Nachos的`thread.cc`和`scheduler.cc`中,可能会包含检查当前线程数是否超过系统设定阈值的逻辑,如果超过,则不允许新的线程创建。这种机制可以避免无节制的线程创建导致的系统崩溃。 然后,优先级调度算法是...

    UNIX线程和轻量级进程

    - **资源利用最大化**:即使线程数量超过处理器数量,也可以通过线程间的切换和复用来最大化资源利用率。 - **提高系统性能**:理论上,n个线程在n个处理器上运行时,完成工作的速度将是单线程程序的n倍。然而,实际...

    Apache的进程与线程讨论

    - `MaxRequestsPerChild`:每个子进程可以处理的最大请求数。 例如,在 `httpd.conf` 文件中可能有如下配置段: ```apache StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 ...

    windows的进程与线程

    ### Windows的进程与线程详解 #### Windows体系结构与基本概念 Windows操作系统作为一个高度复杂的软件系统,其设计架构和核心组件对于理解进程与线程的行为至关重要。根据《操作系统原理实验》中的内容,我们可以...

    LoadRunner中进程运行和线程运行的区别

    - 创建和销毁进程的开销相对较大,因为涉及到了资源的分配和回收。 - 进程间通信(IPC)通常比较复杂,需要通过特定的机制来实现。 **线程**: - **定义**:线程是进程内的一个执行单元,是CPU调度和分派的基本...

    Linux进程、线程和调度(1)

    在Linux中,进程管理涉及进程的创建、执行、状态转换和退出等,而线程作为一种轻量级的进程,为程序并发执行提供了条件。调度则是操作系统对进程和线程运行时间片的分配,确保系统资源高效利用的同时,也要保证程序...

    进程与线程的区别进程的通信方式线程的通信方式文.pdf

    线程的创建和销毁相比进程更快,开销更小,使得多线程程序能够更加高效地并发执行。线程间的通信相对简单,因为它们共享同一块内存,可以直接访问共享变量,但这也增加了数据竞争的风险,需要通过同步机制(如锁、...

    python编程测试电脑开启最大线程数实例代码

    总结来说,这个实例代码提供了一个基础的框架来创建和管理线程,但并未直接测试电脑的最大线程数。要进行这样的测试,你需要设计一个更复杂的系统,考虑线程执行的实际工作量,以及可能遇到的系统限制。同时,理解...

    易语言多线程控制线程数量源码

    可以通过全局变量或配置文件来设置最大线程数,当创建新线程时检查当前线程数是否超过限制。如果超过,可以暂停或延迟创建,或者采用线程池技术,预先创建一定数量的线程供程序使用。 6. **线程结束与清理**: 当...

    Dubbo无法创建新线程异常解决方案.docx

    可以通过执行`ulimit -u`命令来查看当前用户可以创建的最大进程数,例如: ```bash [ylp@test-web-pay-01~]$ ulimit -u 63477 ``` 根据实际情况,可以将普通用户的线程数限制调整至与`ulimit -u`显示的值相同,以...

    用java编的适用于操作系统课程设计的线程-进程管理

    通过设置线程池的参数,如核心线程数、最大线程数和任务队列容量,可以优化系统的并发性能。 文件"线程.rar"可能包含了实现线程管理的相关代码示例,可能包括线程的创建、同步、竞争条件处理等功能。而"进程管理...

    对Solaris操作系统中多线程进程体系结构的研究

    多线程模型允许进程利用SMP架构的优势,在多处理器环境中同时执行多个线程,从而达到最大的并行度和效率提升。即使在单处理器环境下,多线程编程也能提高程序的设计灵活性和执行效率。 在Solaris的内核中,每个进程...

    测试系统创建进程的极限

    `CreateProcess`函数接受一系列参数,如可执行文件路径、命令行参数、进程和线程属性等,然后创建一个新的进程和主线程。通过反复调用`CreateProcess`,我们可以测试系统的进程创建能力。 首先,我们需要了解...

    Windows创建进程例程

    总结来说,Windows提供的进程创建API为开发者提供了丰富的功能,从简单的`WinExec`到复杂的`CreateProcess`,满足了不同场景的需求。在实际开发中,选择合适的进程创建方法并充分理解其参数和行为至关重要,这将直接...

    采用_beginthread创建多线程

    Windows系统为每个进程设置了一定数量的最大线程,超过这个限制,再尝试创建线程将会失败。线程过多可能会导致资源耗尽,性能下降,甚至导致系统不稳定。 四、同步与通信 在多线程环境下,同步是非常重要的,以...

Global site tag (gtag.js) - Google Analytics