前言
最近和同事聊天的时候,我突然想到进程Pid格式为<A1, A2, A3>,其中A1代表Node值, A2, A3则代表指定Node下的进程值,开始A3为0。当A2的值增加到一定数后, A3的值加1,那么问题来了:
1 | 1. A2增加到多少,A3加1 |
问题1
源码:
1 | -module(spawn_loop_infinite2). |
执行命令:
1 | erl> spawn_loop_infinite2:loop(33000). |
打开文件aaa.txt:
1 | [303]:(<0.32766.0>) |
结论:
A2增加到32767,A3加1
问题2
源码:
1 | % 每次生成100万新进程,打印下一进程的pid,休息0.1秒后再生成100万新进程 |
在文件fff820.txt中看到::
1 | [296800]:(<0.32762.8191>) |
结论:
1 | A3在增加到8191后就不再增加,改为使用已经回收的进程 |
其他发现:
1 | % 有个有趣的发现, 在每次进程到达<0.32766.8191>后产生的下一个进程分别是: |