CS(Computer science) - 상식(동기, 비동기)

HJ-C·2023년 1월 4일
post-thumbnail

동기

(Synchronous : 동시에 일어나는)

  • 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어져야한다.
  • 동기방식은 설계가 매우 간단하고 직관적이지만 결과가 주어질 때까지 아무것도 못하고 대기해야 한다.
	'1st'
	'2st'
	'3st'

**이처럼 코드가 위에서부터 아래로 내려오면서 하나가 끝나면 다음 코드가 실행되는 방식을 동기적 처리라고 한다.

**

비동기

(Synchronous : 동시에 일어나는)

  • 요청과 결과가 동시에 일어나지 않는다.
  • 비동기방식은 동기보다 복잡하지만 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있는 장점이 있다.
console.log('1st');
setTimeout(()=>{
  console.log('2nd');
},0)
console.log('3rd');
(결과)
	'1st'
	null
	'3rd'
	'2nd'
  1. 첫번째 줄에서 '1st'를 출력
  2. 두번째 줄에서 비동기적 메소드인 setTimeout()때문에 이를 처리하는 다른 프로그램에 맡긴다
  3. 곧바로 '3rd'를 찍는다
  4. setTimeout() 메소드를 처리하는 프로그램은 비동기적 API를 제외한 모든 코드가 실행된 이후 결과를 콘솔에 찍는다.

비동기적 코드의 실행결과는 동기적 코드가 전부 실행되고나서 값을 반환한다.


profile
생각을 기록하자

0개의 댓글