分类: LINUX
2009-01-16 22:01:00
多线程开发要点(一)
1. 线程栈简述
在一个进程空间能够打开的线程是有限的。
对于32位系统,进程空间的虚拟地址空间有4g。在unix系统下,
有差不多3g的空间分配给堆和栈使用。 在支持线程的进程
里,主线程负责管理这这3g的空间(个人理解)。每次打开一个
新的线程时,就会在进程空间的堆上分配一定额度的空间供
线程使用。
2. 在类unix系统下,通过ulimit -s 命令查询栈的大小。
一般设置都是8192kb,所以此时一个进程里最多分配382左右个线程后,
就会失败。
3. 线程栈的设置
1) 直接通过 ulimit -s size 设置系统全局限制。
2) 在pthread_create函数中设置线程栈大小。针对具体线程。
4. 在多线程程序开发中设置每个线程使用的栈有利于节省系统资源。