한 SpotWide Spot에서 대기하는 두 방법

Async는 turn을 유지하고, Yield는 같은 Spot의 다음 turn에 실행권을 준다

한 SpotWide Spot에서 대기하는 두 방법 Async는 turn을 유지하고, Yield는 같은 Spot의 다음 turn에 실행권을 준다 turn A · Async로 요청 · Async — gate를 유지 turn A Async로 요청 turn A 대기 · gate 유지 · Async — gate를 유지 turn A 대기 gate 유지 turn B · queue에서 대기 · Async — gate를 유지 turn B queue에서 대기 turn A · Yield로 요청 · Yield — gate를 반납 turn A Yield로 요청 turn B · gate를 받아 실행 · Yield — gate를 반납 turn B gate를 받아 실행 turn A 재개 · queue 끝의 새 turn · Yield — gate를 반납 turn A 재개 queue 끝의 새 turn 원격 작업 · 결과를 나중에 반환 · Architecture component 원격 작업 결과를 나중에 반환 요청 제출 다음 turn은 기다림 결과 대기 응답 → 같은 turn gate 반납 완료 뒤 queue 끝 요청 제출 응답 → 새 turn Async — gate를 유지 Yield — gate를 반납

Async

  • • await 중 thread는 비지만 SpotWide gate는 남는다.
  • • 그래서 turn B는 응답이 올 때까지 시작하지 못한다.

Yield

  • • turn A가 끝나며 gate를 반납하므로 turn B가 실행된다.
  • • 응답 continuation은 turn B 뒤의 새 turn으로 다시 들어온다.