카테고리 없음

14. 기술면접 - 자바 - 동기화와 비동기화의 차이

THE HEYDAZE 2021. 10. 22. 10:41
공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다

동기화 (syncronous)

- 한 자원에 동시에 접근하는 것을 제한을 뜻함
- 동시접근이 불가능하기 때문에 순차적으로 접근하여 작업을 진행되게 된다
- 다음에 실행될 명령은 현재 실행 중인 명령 종료 시 까지 대기 (대기시간 버퍼링 발생)
- 서버와 클라이언트가 주고 받는것이 동시에 이루어지는 형태
- 시간적인 동기화가 필요한 곳에 많이 사용 (ex 현금 인출기)
- Java 에서 synchronized 키워드를 사용하여 동기화를 설정한다
  ㄴ 자바에서 멀티 스레드 접근 제한 키워드
  ㄴ 메소드, 블럭 단위로 적용이 가능
  ㄴ 단, 메소드 단위로 지정할 경우 메소드 전체에 lock 이 걸리기 때문에 가능하면 블록 활용 (임계영역은 작을 수록 좋음)

 

비동기화 (Asyncronous)

- 현재 실행 중인 명령이 종료되지 않아도 다음 명령 실행가능
- CallBack 함수를 통해 결과 확인
- Ajax, Thread

 

sync와 async, blocking과 non-blocking, stream 과 channel 

추후 작성예정...