You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

액터모델의 특징 요약

  • 동시및 분산 시스템작성을 위해 높은수준의 추상화제공
  • 개발자가 명시적 잠금처리및 스레드 관리 안해도됨
  • 이로인해 병렬 시스템 작성에 용이


Actor 정의

 
    public class SomeMessage
    {
        public string message { set; get; }
    }

    public class MyActor : ReceiveActor
    {        

        public MyActor()
        {
            Receive<string>(message => {
                Sender.Tell("RE:" + message);                
            });

            Receive<SomeMessage>(message => {
                Sender.Tell("RE:" + message.message);
            });
        }
    }



Actor의 설명과 같이, 메시지를 유연하게 보낼수 있는 기본객체이다.

우리는 Actor설계시 간단하게 다음을 생각하면 된다.

  • 어떠한 메시지(구조체)를 전달할것인가?
  • 특정한 메시지에 어떻게 반응할것인가?


위 정의 코드는 그러한 설계에대해 구현을 한것이다.

  • 어떠한 메시지를 설계하고
  • 메시지를 받게 될시 , 접두어 "RE:" 를 붙여 해당 메시지를 그대로 돌려줘라

 생성자에서 , 패턴 매칭하여 메시지 처리기가 가능한것은 , ReveiveActor의 추상화덕분이며

IF문이나 스위치문없이 생성자에서 , 처리할 패턴별로 처리기가 등록이 가능한것은 C#의 문법지원때문인데

개발 언어학 적으로 파악하고자 하면 (람다/함수형/델리게이트) 등 참조 가능합니다.


어쨋든, 우리는 아주 짧은 코드로 액터 메시지 처리기 설계가 끝이났습니다.

액터 생성







  • No labels