반응형

blocking 2

Java IO vs NIO

java.io, java.nio (new input/output)io는 blocking, nio 는 non-blocking 방식(blocking도 지원)io는 stream 형식으로 입출력, nio는 channel 형식으로 입출력이라고 하지만 결국에는 커넥션을 맺는건데 이게 왜 중요할까???예를 들어 이렇게 생각할 수 있을거 같다."실제로 데이터를 끊어서 읽어온다음 처리하는게 아니라 다 읽어오고 나서 처리하는건데 non-blocking 되는게 필요한거야?"(물론 끊어 읽어와서 처리하는 것도 가능은하다.이런 의문은 소스코드를 보면 더 커진다.InputStream in = socket.getInputStream();byte[] buffer = new byte[1024];int len = in.read(buff..

JAVA 2025.07.20

Blocking vs Non-Blocking, Synchronous vs Asynchronous

구분BlockingNon-BlockingSynchronousAsynchronous의미요청이 끝날 때까지 기다림요청하고 바로 제어권 반환호출자가 결과를 직접 기다림호출 후 결과는 콜백/이벤트로 전달됨예시파일 읽기 완료까지 멈춤읽을 게 없으면 즉시 리턴A → B → 결과 기다림 → 다음A → B 호출만 하고 → 다음 코드 실행대표 상황전통 IONIO일반 함수 호출Future, Callback, Reactor 위의 비교가 어렵다면 다음과 같이 비교해보도록 하자Blocking vs Non-Blocking은“작업이 끝날 때까지 기다릴 것이냐, 말 것이냐”의 차이→ "작업 진입 시점의 차이"Synchronous vs Asynchronous는“결과를 직접 받느냐, 나중에 받느냐”의 차이→ "작업 종료 시점의 처리 방..

JAVA 2025.04.21
반응형