728x90

동기 2

블로킹/논블로킹(Blocking/Non-Blocking)

블로킹/논블로킹 블로킹(Blocking, 타 작업 수행 차단) 특정 작업이 실행 요청을 받아서 실행하는 동안 다른 작업은 진행하지 못하고 대기하는 방식을 의미한다. 제어권이 호출된 함수에게 넘어가서 호출된 함수 내에서 작업이 모두 끝난 후 값이 리턴되고, 호출한 함수에게 다시 제어권이 넘어온다. 작업이 순차적으로 이루어지므로 작업 흐름을 쉽게 이해할 수 있다는 장점이 있다. 블로킹이 이루어지는 동안 하드웨어 리소스를 효율적으로 이용하지 못한다는 단점이 있고, 특히 블로킹이 일어나는 작업이 오래 걸리는 작업인 경우에 이러한 단점은 더욱 부각된다. 논블로킹(Non-Blocking, 타 작업 수행 허용) 특정 작업이 이미 수행중이여도, 그것과 상관없이 바로 다른 작업을 수행 시키는 방식을 의미한다. 제어권은 ..

Computer/CS 2024.03.12

동기/비동기

동기/비동기 동기(Synchronous, 동시에 발생) 동시에 일어난다는 의미이다. 즉, 요청과 그 결과가 동시에 일어난다는 약속을 의미한다. 요청을 하면, 시간이 얼마나 걸리든 상관없이 요청한 자리에서 결과가 주어져야 한다. 요청과 결과가 모두 한 자리에서 동시에 일어나게 된다. 여러 노드 사이의 작업 처리 단위를 동시에 맞추겠다는 의도를 포함하고 있다. 설계가 매우 간단하고 직관적이지만 결과가 주어질 때까지 아무것도 못하고 대기해야 한다는 단점이 존재한다. 비동기(Asynchronous, 동시에 발생하지 않는) 동시에 일어나지 않음을 의미한다. 즉, 요청과 결과가 동시에 일어나지 않는다는 약속을 의미한다. 요청한 그 자리에서 결과가 주어지지 않는다 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 ..

Computer/CS 2024.03.12
728x90