Erlangで処理するメッセージを送信するにはどうすればよいですか?プロセスを開始しましたが、出力にはpid(プロセス識別子)がであることが示されています<0.39.0>
。<0.39.0>
私の質問は、このプロセス( )に手動でメッセージを送信するにはどうすればよいですか。
2994 次
3 に答える
6
実際に PIDをlist_to_pid/1
構築し、それを使用してメッセージを送信するために使用できますが、その使用はお勧めできません。
この BIF は、デバッグおよび Erlang オペレーティング システムでの使用を目的としています。アプリケーションプログラムでは使用しないでください。
より良いアプローチは、プロセスを開始するときに PID を保存することです。
1> P = spawn(fun() -> receive _ -> ok end end).
<0.34.0>
2> P!hi.
hi
于 2013-01-05T10:26:31.690 に答える
3
(emacs@yus-iMac.local)100> P = list_to_pid("<0.39.0>").
<0.39.0>
(emacs@yus-iMac.local)101> P!aaa.
aaa
于 2013-01-05T08:38:25.987 に答える
2
他の解決策に加えて、REGISTERfuncが役立つかもしれません。
register(regpid,spawn(fun() -> receive _ ok end end).
regpid ! msg.
どこでもregpidにmsgを送ることができます。
于 2013-01-09T04:26:15.623 に答える