Erlang에서 2 개의 프로세스가 있으며 각 프로세스마다 수신 루프가 실행 중이라고 가정 해 보겠습니다. ProcessB에서 ProcessA로 신호를 보내고 싶지만 ProcessA는 실제로 그걸로 아무 것도 할 필요가 없습니다. ProcessA는 ProcessB가 메시지를 보낸 것을 알아야합니다. 여기Erlang에서 간단한 수신 루프를 작성하는 방법
는 내가 현재 구현 방법은 다음과 같습니다 그것은 잘 작동
receive
{message_from_process_b} ->
io:format("received a message from b", []);
end,
%% at this point I know that I've received the message from B.
. 그러나 호기심 때문에 io:format
라인을 사용하지 않고 어떻게 작성할 수 있습니까? (B에서 메시지를받을 때까지 프로세스 A가 필요합니다. 이것은 Yaws/Yapp의 큰 부분이며 페이지를 표시하기 전에 서버에서 응답해야합니다.)
감사합니다. 나는 그것을 계획한다. 나는 여전히 Erlang을 배우고 있으며 조 (Joe)의 책조차도 그가 코드를 작성한 다음 OTP의 모든 것을 그것의 주위에 두는 것에 대해 언급합니다. 무슨 일이 일어나는 지 알고 싶습니다. 나는 gen_server와 supervisors를 이해하지만 처음부터 아직 구현하지 않았습니다. 확실히 - 조언 해 주셔서 감사합니다. – marcc
그래, 조는 실제로 OTP를 사용하지 않는다는 것이 문제 다. 그는 항상 자신의 서버를 굴린다 : (어리석게도 그는 스톡홀름의 Erlang User Conference에서 다른 해에 모두 그를 때렸다.) Erlang의 새로운 책 O'Reilly 출신 http://www.amazon.co.uk/Erlang-Programming-Francesco-Cesarini/dp/0596518188/ref=sr_1_1?ie=UTF8&s=books&qid=1247175390&sr=8-1 –