プロセスの仕組みについて勉強しています。
なぜ、以下のようなアウトプットになるのか理解できません。os.fork()の箇所で子プロセスが生成され、「親プロセス: 69314」が2つ出力されると思っていましたが、どうして以下のような結果になるのでしょうか?print(f'親プロセス: {os.getpid()}')の箇所で親プロセスは、正常終了し、子プロセスが残った状態でprint(f'子プロセス: {os.getpid()}')が出力されているのでしょうか?
しかし、printは、システム関数であるため、printの処理が終わったからといって正常終了したことにはならないと思っています。
python
1bash-3.2$ cat test.py 2import os 3 4if os.fork(): #os.fork()が実行されると0が返却され、子プロセスはelse内の処理に入りprint文を実行する 5 print(f'親プロセス: {os.getpid()}') 6else: 7 print(f'子プロセス: {os.getpid()}') 8bash-3.2$ python test.py 9親プロセス: 69314 10子プロセス: 69330 11bash-3.2$
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/06 06:27