linux下一个线程占用多少内存
来源:互联网 发布:iphone自定义铃声软件 编辑:程序博客网 时间:2024/04/28 01:28
群里讨论出mysql的问题,因为mysql是一个连接建立一个线程的,这就涉及到mysql可以建立多少个线程。
无论是windwos 还是linux ,每个线程都有自己独立的stack,每个stack 都占用一定的空间。
windwos 默认的是1M,这个在exe中可以看到,也可以编译时指定。linux默认使用pthread.h中的PTHREAD_STACK_SIZE,这和glibc的编译有关系,
这样说明linux 可以使用更多的线程。
int __pthread_attr_setstacksize(pthread_attr_t *attr, size_tstacksize)
{
#ifdef FLOATING_STACKS
#else
#endif
}
对于java ,Solaris 默认
先来讲说线程内存相关的东西,主要有下面几条:
进程中的所有的线程共享相同的地址空间。
任何声明为static/extern的变量或者堆变量可以被进程内所有的线程读写。
一个线程真正拥有的唯一私有储存是处理器寄存器。
线程栈可以通过暴露栈地址的方式与其它线程进行共享。
下面的网上的代码
下面的我们用pthread_attr_getstacksize和pthread_attr_setstacksize的方法来查看和设置线程的栈空间。
注意:
linux线程的实现方式决定了对进程的限制同样加在了线程身上:)所以,有问题,请参见<pthread>
#include <pthread>
void *thread_routine (void *arg)
{
}
int main (int argc, char *argv[])
{
#ifdef _POSIX_THREAD_ATTR_STACKSIZE
#endif
}
看看执行过程:
gcc -pthread -g -DDEBUG -lrt
./thread_attr
Default stack size is 8388608; minimum is16384
Default stack size is 16777216; minimum is16384
The thread is here
The thread is here
The thread is here
The thread is here
The thread is here
Get 15M Memory!!!
Get More Memory!!!
Get 15M Memory!!!
Get More Memory!!!
Get 15M Memory!!!
Get 15M Memory!!!
Get More Memory!!!
Get More Memory!!!
Get 15M Memory!!!
Get More Memory!!!
Mainexiting</pthread></pthread>
- linux下一个线程占用多少内存
- linux环境下一个进程最多能有多少个线程?
- Linux下一个进程究竟会有多少个线程
- Android中开启一个空线程会占用多少内存
- Android中开启一个空线程会占用多少内存
- linux统计所有进程总共占用多少内存?
- java对象占用多少内存
- 线程占用内存多大?
- PE启动时会占用多少内存
- new一个Object对象占用多少内存?
- new一个Object对象占用多少内存?
- new一个Object对象占用多少内存?
- new一个Object对象占用多少内存?
- new一个Object对象占用多少内存?
- java对象内存到底占用多少
- linux下一个内存池实现
- linux下,一个运行中的程序,究竟占用了多少内存?
- linux下,一个运行中的程序,究竟占用了多少内存?
- HTML中的上标和下标标签
- 电子化企业采购
- maven ssh2
- 网页启动客户端程序代码
- eclipse或myeclipse安装 Axis2 插件
- linux下一个线程占用多少内存
- 转载goahead webserver源码分析
- NO.1 java开发前奏
- MSDN 索引 应用程序错误hh.exe
- 多线程的同步critical section类的用法与解析
- sql 行专列 列转行 普通行列转换
- 在Linux下正则表达式和grep命令的使用
- Map接口
- PostThreadMessage例子