测试 fork 的时候,出现以下的一个情况:
1 |
|
按理来说,结果应该是
start,parent:15111,current:19431
host,parent:15111,current:19431, fpid:19432
child,parent:19431,current:19432, fpid:0
但是在 sublime 使用 CTRL + SHIFT + B 执行的时候,结果却是:
start,parent:15111,current:19431
host,parent:15111,current:19431, fpid:19432
start,parent:15111,current:19431
child,parent:19431,current:19432, fpid:0
核心原理
首先看一个熟悉的场景:排队买票。
从理论上看,针对“排队买票”这个场景,我们可以有以下几种方案设计:
第一种. 固定设置一个售票窗口,每新来一个购票者就排在队伍的最后面。如图:

第二种. 动态设置售票窗口数量,每新来一个购票者就新开一个窗口来进行接待。如图:

第三种. 固定设置 N 个售票窗口,每新来一个购票者就选择一个售票窗口。如图:

比较一下上面的三种方案,很明显现实社会中使用的是第三种,那么各自有什么优势与缺点呢?