Block, NonBlock , 동기, 비동기

홍찬기
Jan 18, 2023

--

Block, NonBlock, 동기, 비동기

  • Block
    호출된 대상(B)이 작업을 모두 마칠때까지 제어권을 넘기지않고 호출한 대상(A)은 작업을 마칠때까지 대기하는것
  • NonBlock
    호출된 대상(B)이 자신의 작업이 마치지 않았어도 제어권을 바로 반환하여 호출한 대상(A)이 대기하지 않고 작업하는것
  • Sync
    - 작업 완료 여부를 계속 확인한다.
    - 함수를 호출한 곳에서 호출된 함수가 결과를 반환할때까지 대기한다.
    - 현재의 작업이 끝나는동시에 다음 작업을 실행한다.
  • Async
    - 현재 작업의 응답이 끝나지 않은 상태에서 다음 작업을 요청한다.
    - 함수를 호출한 곳에서 완료 여부를 신경쓰지 않고, 호출된 곳에서 작업이 끝나면 callback으로 결과를 전달
    -
    callback 함수는 다른 함수의 인자로 들어간 함수로서 특정 시점에 실행되게 되는 함수
    - 작업 완료 여부를 확인하지 않는다.
    - 호출된 함수의 작업은 별도의 thread로 빼서 실행하며 완료되면, 호출한 함수에게 알려준다.
  • Block/NonBlock
    Block: 세탁기에 빨래를 넣고 빨래가 다 될때까지 대기
    NonBlock: 세탁기에 빨래를 넣고 세탁을 누르고 청소를 한다.
  • Sync/Async
    Sync: 세탁기에 빨래를 넣고 빨래가 다 됬는지 안됬는지 계속 확인
    NonBlock: 세탁기에 빨래를 넣고 청소를 하고 세탁이 다됬다는 소리를듣고 빨래를 꺼낸다.

--

--