私は、産んだ直後に何かをやろうとしているプロセスをerlangに持っていて、終了時に結果を親に返します。どのように私はそれを産んだプロセスのPIDを把握するのですか?プロセスの親のPIDを決める方法
答えて
entry関数の引数の1つとして、子にself()を渡す必要があります。
spawn_link(?MODULE, child, [self()]).
あなたは、その後、他のプロセスから戻って登録された名前を参照してください産卵/親プロセスに名前(原子)を得レジスタのBIFを使用することができます。
FUNC() - >
は親
親にメッセージを送る次に何か
%%を行い%%!メッセージ。...
レジスタ(親、自己())、
スポーン(MODULE、FUNC、[ARGS])。
Getting Started With Erlang §3.3およびThe Erlang Reference Manual §10.3を参照してください。
あなたは名前を登録することでそれを行うことができますが、それは全くいいことではありません。この投稿は、あなたが積極的にそれをして落胆し、問題を説明した方が良いでしょう。 – Christian
プライベートベータ版(この質問はプライベートベータの開始から約1週間後に戻っています)では、サイトの議論面はあまりうまく成立していませんでした。私は本当に意見を述べることを望んでおらず、代わりの方法を述べるだけです。私は賛否両論が他の回答/投稿で適切に対処されていると思う。 –
@Eridiusの回答はそれを行うのに好ましい方法です。プロセスに名前を登録するよう要求すると、プロセスの可視性が向上するなど、意図しない副作用が生じる可能性があります。
子プロセスを開始するために呼び出される関数の引数として渡すことをお勧めします。あなたが一般的に行うには良いことです低速運行を、産卵している場合は、やって注意してください:あなたが意図したとおりにしないだろう
spawn_link(fun() -> child(self()) end)
。 (ヒント:self()が呼び出されたとき)
一般的に、プロセスを登録することは避けてください。面白いことを生み出すということは、他のモジュールから呼び出されることを意図していない関数を一般的にエクスポートしないように、生成された関数をエクスポートする必要がないことを意味します。
- 1. プロセスを殺すためにpidを使う方法
- 2. 子プロセスから親プロセスに通知するための最良の方法
- 3. pidからプロセスの詳細を取得する方法
- 4. コマンドラインでプロセスのPIDを抽出する方法
- 5. 親プロセスの子プロセスのツリーを削除する方法
- 6. プロセスのpidについて
- 7. シェルスクリプトでフォークされた子プロセスからプロセスID(pid)を取得する方法
- 8. PIDによるErlangのプロセスの殺し
- 9. linuxのpidからプロセスのパスまたは名前を取得する方法
- 10. iOSシステムのプロセスpidから他のアプリケーションアイコンを取得する方法は?
- 11. cで親プロセスと子プロセスを共有する方法
- 12. 親プロセスに応じて子プロセスを作成する方法は?
- 13. 親プロセスから子プロセスを取得する方法
- 14. シェルで親プロセスと子プロセスを削除する方法は?
- 15. 特定のPIDを指定して、Javaでプロセスを終了する方法
- 16. サブプロセスpython + bashでプロセスのpidを取得
- 17. エリクサーテストgenserver - 親PIDを渡す
- 18. Mac OSでプロセスのユーザー名をPIDで取得する方法は?
- 19. php safe_modeがオンのときにPIDでプロセスをkillする方法
- 20. 現在実行中のプロセスのpid
- 21. Windowsバッチファイル:最後のプロセスのPID?
- 22. PIDでプロセス名を見つける
- 23. 子プロセスから親プロセスに値を書き込む方法は?
- 24. 親プロセスよりも寿命の長いプロセスを作成する方法
- 25. Bashの別のプロセスにパイプされるプロセスのPIDを取得するには?
- 26. 別のプロセス(Windows)のキーボードレイアウトを決定する方法は?
- 27. 再割り当て親PID
- 28. 子プロセス/親プロセス
- 29. linuxの親プロセスIDを見つける方法
- 30. 親子プロセスの実行を同期する方法は?
'proc_lib'を使ったOTPやその他のプロセスについては、[OTPプロセスの管理者を探す方法は?](http://stackoverflow.com/questions/4132317/how-to-find-the-supervisor-of -an-otp-process) –