`
zhengjunwei2007_163.com
  • 浏览: 130885 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

WINDOWS操作系统中可以允许最大的线程数2000

阅读更多

默认情况下,一个线程的栈要预留1M的内存空间
而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程
但是内存当然不可能完全拿来作线程的栈,所以实际数目要比这个值要小。
你也可以通过连接时修改默认栈大小,将其改的比较小,这样就可以多开一些线程。
如将默认栈的大小改成512K,这样理论上最多就可以开4096个线程。

即使物理内存再大,一个进程中可以起的线程总要受到2GB这个内存空间的限制。
比方说你的机器装了64GB物理内存,但每个进程的内存空间还是4GB,其中用户态可用的还是2GB。


如果是同一台机器内的话,能起多少线程也是受内存限制的。每个线程对象都要站用非页面内存,而非页面内存也是有限的,当非页面内存被耗尽时,也就无法创建线程了。

如果物理内存非常大,同一台机器内可以跑的线程数目的限制值会越来越大。  

在Windows下写个程序,一个进程Fork出2000个左右线程就会异常退出了,为什么?

这个问题的产生是因为windows32位系统,一个进程所能使用的最大虚拟内存为2G,而一个线程的默认线程栈StackSize为1024K(1M),这样当线程数量逼近2000时,2000*1024K=2G(大约),内存资源就相当于耗尽。

分享到:
评论

相关推荐

    WINDOWS操作系统中可以允许大的线程数

     即使物理内存再大,一个进程中可以起的线程总要受到2GB这个内存空间的限制。  比方说你的机器装了64GB物理内存,但每个进程的内存空间还是4GB,其中用户态可用的还是2GB。  如果是同一台机器内的话,能起...

    Windows 2000线程间通信

    在Windows操作系统的发展历程中,Windows 2000作为一代经典,其提供的线程间通信机制对于开发多线程应用程序起到了重要的作用。线程间通信是指在操作系统中,同一进程或不同进程的线程之间能够互相交换信息的能力。...

    操作系统。。windows多线程

    操作系统中的Windows多线程是计算机程序设计中的一个重要概念,尤其在C++编程中,它允许开发者在同一时间执行多个任务或代码段,提高了程序的效率和响应性。在XP操作系统上,多线程技术被广泛应用于各种应用程序,如...

    操作系统-创建多线程-读者写者

    ### 操作系统中的多线程创建与读者写者问题解析 #### 多线程概念介绍 在计算机科学中,线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。一个进程可以拥有多个线程,而每个...

    操作系统线程同步算法

    在Windows操作系统中,提供了多种线程同步机制,如临界区、事件、信号量以及互斥量等。本主题将深入探讨未使用和使用Windows互斥量的线程同步方案,以及Peterson算法这一经典的软件解决方案。 首先,未使用Windows...

    操作系统线程同步实验报告

    在Windows操作系统中,可以通过`CreateMutex`函数创建一个未锁定的Mutex对象。线程在进入临界区之前调用`WaitForSingleObject`或`WaitForMultipleObjects`获取Mutex,使得其他线程无法同时访问;在离开临界区后调用`...

    Windows操作系统内核深入编程

    《Windows操作系统内核深入编程》一书是针对对Windows系统底层机制有浓厚兴趣的开发者和研究者的重要参考资料。这本书深入探讨了Windows操作系统的核心组件、工作原理以及如何进行系统级编程。书中涵盖了C++语言在...

    获取本机CPU支持的最大线程数

    在Windows操作系统中,我们可以使用任务管理器来查看CPU的基本信息,包括核心数和线程数。但在某些情况下,可能需要更详细或自动化的方式来获取这些数据,这时,"获取本机CPU支持的最大线程数"这样的绿色免安装程序...

    操作系统课程设计——多线程同步演示

    操作系统课程设计中的多线程同步是一个关键的概念,它涉及到如何在多个执行线程之间协调工作,确保数据的一致性和程序的正确性。在本项目中,我们使用Visual C++作为开发环境,这是一个强大的Windows平台上的集成...

    操作系统多线程的创建

    操作系统中的多线程技术是现代计算机程序设计的重要组成部分,它允许多个执行流在单个进程中并发运行,从而提高系统资源的利用率和程序的执行效率。在这个“操作系统多线程的创建”主题中,我们将深入探讨多线程的...

    用C#实现的多线程同步打印文章(windows操作系统实验)

    在本文中,我们将深入探讨如何使用C#编程语言在Windows操作系统环境下实现多线程同步打印文章的实验。这个实验的核心是创建两个独立的线程,一个用于文章的下载,另一个用于文章的打印,同时利用线程同步机制确保...

    Windows操作系统各进程详解

    在Windows操作系统中,进程是计算机执行的基本单元,它们代表了运行中的程序实例。每个进程都有自己独立的内存空间,包括代码、数据、堆栈等。理解Windows操作系统中的进程工作原理对于优化系统性能、解决系统问题...

    Windows多线程编程详解

    在Windows操作系统中,多线程编程是一种常见的编程模式,它允许多个执行单元(线程)在单个进程中并发运行,从而提高程序的执行效率和响应性。在本篇文章中,我们将深入探讨Windows多线程编程的核心概念、实现方法...

    操作系统设计 多线程同步模拟(C++版)

    操作系统设计是计算机科学中的核心领域,它涉及到系统资源的管理和调度,使得多个程序可以并发执行。在本项目中,我们关注的是多线程同步模拟,这是操作系统设计中的一个关键概念,尤其是在C++环境下,利用MFC...

    操作系统课程设计打包奉上【含DOS下多线程的实现,内存模拟文件系统】

    C语言本身并不直接支持多线程,但可以通过库函数如POSIX的pthread库或Windows API中的CreateThread函数来实现。TURBO C编译器虽然古老,但依然可以用来编写多线程程序,不过可能需要额外的库支持。在OSTcb.txt这个...

    windows操作系统原理课件

    Windows操作系统原理是计算机科学中的重要组成部分,它涵盖了操作系统的核心概念、设计原则以及在Windows环境下的具体实现。这个课件深入探讨了Windows操作系统的工作方式,帮助学习者理解其背后的复杂机制。以下是...

    操作系统-4.3-Windows线程编程1

    Windows操作系统提供了丰富的线程编程接口,使得开发者能够高效地管理和利用多核处理器的优势。本节将主要介绍Windows线程编程的主要API以及一些基本的编程示例。 一、Windows线程编程API 1. **CreateThread()**: ...

    windows环境下多线程编程原理

    在Windows操作系统中,每个线程都有自己的执行上下文,包括程序计数器、寄存器和堆栈,使得它们能够独立执行任务。 Windows操作系统提供了丰富的API(应用程序接口)来支持多线程编程。例如,可以使用`CreateThread...

    操作系统 多线程演示程序

    操作系统中的多线程技术是一种允许程序并发执行的机制,它允许多个线程在单个进程中同时运行。这种技术在现代计算机系统中被广泛应用,特别是在需要高性能和高响应性的应用程序中,例如图形用户界面、服务器处理和...

    用C++编写的windows操作系统的多线程同步程序

    在本实验中,我们将探讨如何使用C++在Windows操作系统中编写多线程同步程序。首先,我们要理解Windows程序设计的基本思想,尤其是基于消息的程序设计方法。在Windows编程中,程序通常通过处理由操作系统发送的消息来...

Global site tag (gtag.js) - Google Analytics