
设置最大值是32767的原因是为了与老版本的Unix和Linux兼容,32768是short int短整型的最大值,由于一般机器不可能同时跑那么多进程+线程,所以32768是肯定够用了,但是系统倾向于分配未使用过的pid给新进程,所以你会发现在正在运行的系统上,有很多低位的pid没有使用,那是因为启动的时候该pid被其它程序用过了,当然,你真有本事用到pid的最大值,系统也有办法解决,那就是从头(低位)搜索未被占用的pid分配给新进程。
一般PID_MAX=0x8000(可改),因此进程号的最大值为0x7fff,即32767。进程号0-299保留给daemon进程。这里的last_pid 记录了上一次分配的pid,next_safe(注意它是一个static的变量)记录了当前可以安全分配的最大pid+1的值。有兴趣可以看这篇文章
http://hi.baidu.com/zhuxiaoyin/blog/item/87df1bae6d7da7fdfaed5033.html
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)