병렬 경로 (parallel)
Contents
3.7. 병렬 경로 (parallel)#
하나의 객체에서 여러 객체에 동시에 메시지를 전달하는 상황을 표현할 때 사용합니다.
병렬을 뜻하는 parallel을 줄여서 par
라는 키워드를 사용합니다.
사용 방법은 다음과 같습니다.
par 전달경로1
... 작업 내용 ...
and 전달경로2
... 작업내용 ...
:
:
and 전달경로 N
... 작업내용 ...
end
3.7.1. 메시지 병렬 전달#
하나의 객체에서 다른 2개 객체로 메시지를 전달하고 답변을 받는 예제를 실습해 보겠습니다.
```mermaid
sequenceDiagram
par 강감찬 to 이순신
강감찬 ->> 이순신: 안녕하세요?
and 강감찬 to 홍길동
강감찬 ->> 홍길동: 안녕하세요?
end
이순신 -->> 강감찬: 강 장군! 오랜만이오.
홍길동 -->> 강감찬: 장군님, 홍길동 여기 있습니다.
```
sequenceDiagram
par 강감찬 to 이순신
강감찬 ->> 이순신: 안녕하세요?
and 강감찬 to 홍길동
강감찬 ->> 홍길동: 안녕하세요?
end
이순신 -->> 강감찬: 강 장군! 오랜만이오.
홍길동 -->> 강감찬: 장군님, 홍길동 여기 있습니다.
3.7.2. 중첩된 병렬 전달#
메시지를 전달 받은 후 병렬 전달 내부에 병렬 전달을 포함할 수 있습니다.
sequenceDiagram
participant A as 강감찬
participant B as 이순신
participant C as 홍길동
participant D as 개똥이
participant E as 마당쇠
par A to C
A ->> B: 부대 주변을 정찰해 주세요.
and B to C
A ->> C: 부대 주변을 정찰해 주세요.
par C to D
C ->> D: 산속을 정찰하세요
and B to C
C ->> E: 들판을 정찰하세요
D ->> C: 산속은 조용합니다.
E ->> C: 들판에 사람들이 모여 있습니다.
end
B ->> A: 알겠소이다 장군.
C ->> A: 들판에 수상한 조짐이 있습니다.
end