質問: Process.fork`まで読み終えた状態の`親プロセス`とまったく同様なメモリの状態を保持していると考えています。 その為、子プロセスにおいても`pid`は`nil`ではなく(自分の`pid`が`変数pid`には入っている)、`else`の処理が走ってしまう(`親プロセス`も`子プロセス`も`else`の処理が走る)と考えてしまいます。 しかし実際には`子プロセス`と`親プロセス`は違う処理が走っています。 この考えの間違えている部分はどこなのでしょうか?
回答: > > しかし自分の解釈では、pid = Process.forkとforkされた瞬間に、子プロセスもpid = Process.forkまで読み終えた状態の親プロセスとまったく同様なメモリの状態を保持していると考えています。 > > > 正確にはProcess.forkの瞬間を複製し、forkの戻り値は > > 親プロセスでは子プロセスのプロセスIDを、子プロセスでは nil を返します。 > > > となっています。