원자로 패턴은 위키피디아에 설명되어 있으며 너무 추상적입니다. 이 패턴을 좀 더 구체적으로 설명 할 수 있습니까? 리액터 패턴의 일부 애플리케이션을 설명하는 코드 스 니펫 또는 고수준 클래스 다이어그램이 이상적입니다.
답변:
http://www.dre.vanderbilt.edu/~schmidt/PDF/reactor-siemens.pdf를 설명하는 원본 문서를 확인하는 것이 좋습니다.
Reactor 디자인 패턴은 하나 이상의 클라이언트가 애플리케이션에 동시에 전달하는 서비스 요청을 처리합니다. 애플리케이션의 각 서비스는 서버 메서드로 구성 될 수 있으며 서비스 별 요청을 발송하는 별도의 이벤트 핸들러로 표현됩니다. 이벤트 핸들러 디스패치는 등록 된 이벤트 핸들러를 관리하는 시작 디스패처에 의해 수행됩니다. 서비스 요청의 역 다중화는 동기식 이벤트 역 다중화기에 의해 수행됩니다.
리액터를 사용하면 차단하는 여러 작업 (예 : IO로 인해)을 단일 스레드를 사용하여 효율적으로 처리 할 수 있습니다. 리액터는 핸들러 풀을 관리하고 이벤트 루프를 실행합니다. 작업을 수행하기 위해 호출 될 때 새로운 또는 비어있는 핸들러와 연결하여 활성화합니다. 이벤트 루프 (1)는 활성화되고 차단 해제 된 모든 핸들러를 찾습니다 (또는 디스패처 구현에 위임) (2) 발견 된 핸들러 각각을 완료하거나 차단하는 지점에 도달 할 때까지 순차적으로 실행합니다. 완료된 핸들러는 재사용을 위해 비활성화되고 비어있는 반면 차단 된 활성 핸들러는 양보하여 이벤트 루프를 계속할 수 있습니다. (3) 단계 (1)부터 반복