네트워크

Blocking Non-Blocking

bzerome240 2024. 10. 6. 16:29

Blocking

함수 실행 후 모든 코드가 완료된 후 리턴

 

Non-Blocking

함수 실행 후 코드가 완료되지 않고 리턴

 

Non-Blocking 함수를 실행하고 완료됨을 아는 방법

방법1 Polling - 주기적으로 확인함

while(true) {
  if(isFinish == true) {
    break;
  }
  sleep(1000);
}

방법2 Event - Event가 발생했을 때 내가 원하는 함수를 호출해줌

public async function Task<string> GetString() {
  ...
}

string result = await GetString(); // Blocking 방식으로 호출되지만 다른 스레드에서 실행됨

Console.Write(result);

 

 

 

728x90
반응형