linux多线程默认栈大小和最大线程数
linux的线程栈大小可以使用ulimit -s查看,对于ubunt 2.6的内核线程栈的默认大小为8M,如下:
shine@shine-bupt:~/Program/C$ ulimit -s
8192
32位的系统,虚拟内存空间是4G,其中1G是内核空间用户不可见,真正可以使用的内存空间大小是3G,具体参加下表:
Linux的内存模型,一般为:
|
地址 |
作用 |
说明 |
|
>=0xc000 0000 |
内核虚拟存储器 |
用户代码不可见区域 |
|
<0xc000 0000 |
Stack(用户栈) |
ESP指向栈顶 |
|
↓ ↑ |
空闲内存 |
|
|
>=0x4000 0000 |
文件映射区 |
|
|
<0x4000 0000 |
↑ |
空闲内存 |
|
Heap(运行时堆) |
通过brk/sbrk系统调用扩大堆,向上增长。 |
|
|
.data、.bss(读写段) |
从可执行文件中加载 |
|
|
>=0x0804 8000 |
.init、.text、.rodata(只读段) |
从可执行文件中加载 |
|
<0x0804 8000 |
保留区域 |
也就是说用户可使用的内存空间就是0x00000000~0xc0000000的大小,这个空间的大小刚好是3G。
那么进程中能创建的最大线程数就会受默认线程栈的大小限制,假设线程数N,则N*8M < 3*1024M一定要成立。
linux多线程默认栈大小和最大线程数的更多相关文章
- Linux 平台如何查看某个进程的线程数?
Linux 平台如何查看某个进程的线程数? 三种方法:1. 使用top命令,具体用法是 top -H 加上这个选项,top的每一行就不是显示一个进程,而是一个线程. 2. 使用ps命令,具体用法是 ...
- 《Linux多线程服务端编程》笔记——线程同步精要
并发编程基本模型 message passing和shared memory. 线程同步的四项原则 尽量最低限度地共享对象,减少需要同步的场合.如果确实需要,优先考虑共享 immutable 对象. ...
- Linux ulimit和动态修改MySQL最大线程数限制
ulimit是限制进程对资源的使用但软件资源限制变化不大,特别是process/file,分别对应nproc和nofilenproc可用 ulimit -u 查询:nofile可用 ulimit -n ...
- Linux下修改当前用户的最大线程数和 open files
1 查看当前用户的线程 ulimit -a 2 修改配置文件 vi /etc/security/limits.d/90-nproc.conf 3 改完即可生效 4 修改可打开的最大文件数 vi /e ...
- linux查看修改线程默认栈空间大小(ulimit -s)
linux查看修改线程默认栈空间大小 ulimit -s 1.通过命令 ulimit -s 查看linux的默认栈空间大小,默认情况下 为10240 即10M 2.通过命令 ulimit -s 设置大 ...
- 更改Linux默认栈空间的大小
有时候在Linux写C++程序处理大量的数据,程序内部需要分配很大的数组来存放一些数据,但有时候分配的数组太大的话运行时会出现段错误.这种情况可能是分配的数组大小超过了Linux系统的默认栈空间的大小 ...
- 关于Linux x64 Oracle JDK7u60 64-bit HotSpot VM 线程栈默认大小问题的整理
JVM线程的栈默认大小,oracle官网有简单描述: In Java SE 6, the default on Sparc is 512k in the 32-bit VM, and 1024k in ...
- LINUX最大线程数及最大进程数
查看最大线程数: cat /proc/sys/kernel/threads-max ulimit User limits - limit the use of system-wide resource ...
- (转)linux下进程的进程最大数、最大线程数、进程打开的文件数和ulimit命令修改硬件资源限制
ulimit命令查看和更改系统限制 ulimit命令详解 ulimit用于shell启动进程所占用的资源,可以用来设置系统的限制 语法格式 ulimit [-acdfHlmnpsStvw] [size ...
随机推荐
- js中去除两端逗号
1.js replace(a,b)之替换字符串中所有指定字符的方法 var str = 'abcadeacf'; var str1 = str.replace('a', 'o'); alert(str ...
- request.setAttribute("username", username);//一定要保存,OGNL才能获取${username}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, ...
- L137
Uncontacted Tribes at Risk Amid ‘Worrying' Surge in Amazon Deforestation Illegal loggers and militia ...
- Failed to export application
打包Android项目,遇到Failed to export application的错误提示.如何处理呢 我当时是 在替换图标时 没有完全替换 只替换了 四张drawable_h图片,没有替换上 ...
- AS3里面的错误代码
ActionScript 3 出现2048安全策略服务,一种原因是因为843端口下发策略文件有问题,另一种原因是Socket端口有问题,可以用telnet来测试. 其它AS3错误代码的意义可以在官网文 ...
- tslib: Selected device is not a touchscreen (must support ABS_X and ABS_Y events)
/************************************************************************************ * tslib: Selec ...
- (三)js循环结构
1.循环结构 a) 当循环 语法:while(condition){ code... } do(){ code... } while(); ...
- (效果三)js实现选项卡切换
开发了很久的小程序,在接到一个h5移动端页面的时候,很多原生的东西都忘了,虽然说我们随着工作经验的增加,处理业务逻辑的能力在提高,但是基础的东西如果长时间不用,也会逐渐忘记.所以以后会经常总结原生的一 ...
- CDlinux无线破解系统
cdlinux是一款功能非常强大的无线密码破解器,cdlinux兼容pin软件,不用抓取握手包.不用跑字典.不用客户端在线就能够破解无线路由器的密码,轻轻松松帮助用户达到蹭网的目的. 基本简介 cdl ...
- noip积木大赛
先要覆盖一号位置的高度,(现在你的目的只是想要覆盖一号位置). 每次你可以选区间[l,r]高度+1,这个作为一个操作. 为什么不选的范围大一点,让更多的区间增加高度呢. 所以红色的地方是,在我的目的是 ...