@startuml
autonumber " <b>#</b> "
skinparam shadowing false
skinparam sequence {
ArrowColor Black
ActorBorderColor Black
LifeLineBorderColor Black
LifeLineBackgroundColor Black
ParticipantBorderColor Black
}
skinparam ControlBorderColor White
skinparam ControlBackgroundColor White
participant "Client" as A0 order 10100
activate A0 #CadetBlue
participant "Server" as A1 order 10200
activate A1 #CadetBlue
rnote over A0 : Idle
/ rnote over A1 : Listen
autonumber stop
[<[#White]-- A0
autonumber resume
deactivate A0
note over A0 : Need
control " " as T0 order 10101
A0 -[#Blue]> T0 : Request(1)
activate T0 #Silver
activate A0 #CadetBlue
rnote over A0 : Wait(1)
autonumber stop
[<[#White]-- A0
autonumber resume
deactivate A0
note over A0 : Need
control " " as T1 order 10102
A0 -[#Blue]> T1 : Request(2)
activate T1 #Silver
activate A0 #CadetBlue
rnote over A0 : Wait(3)
T0 -[#Blue]> A1 : Request(1)
deactivate T0
deactivate A1
autonumber stop
[<[#White]-- A0
autonumber resume
activate A1 #MediumPurple
rnote over A1 : Work(1)
autonumber stop
[<[#White]-- A0
autonumber resume
deactivate A1
note over A1 : Completed
control " " as T2 order 10199
A1 -[#Blue]> T2 : Response(1)
activate T2 #Silver
activate A1 #CadetBlue
rnote over A1 : Listen
T1 -[#Blue]> A1 : Request(2)
deactivate T1
deactivate A1
autonumber stop
[<[#White]-- A0
autonumber resume
activate A1 #MediumPurple
rnote over A1 : Work(2)
autonumber stop
[<[#White]-- A0
autonumber resume
deactivate A1
note over A1 : Completed
control " " as T3 order 10198
A1 -[#Blue]> T3 : Response(2)
activate T3 #Silver
activate A1 #CadetBlue
rnote over A1 : Listen
T2 -[#Blue]> A0 : Response(1)
deactivate T2
deactivate A0
autonumber stop
[<[#White]-- A0
autonumber resume
activate A0 #CadetBlue
rnote over A0 : Wait(2)
T3 -[#Blue]> A0 : Response(2)
deactivate T3
deactivate A0
autonumber stop
[<[#White]-- A0
autonumber resume
activate A0 #CadetBlue
rnote over A0 : Idle
autonumber stop
[<[#White]-- A0
autonumber resume
deactivate A0
deactivate A1
@enduml