본문 바로가기

개발/javascript

[javascript]동기&비동기

동기방식

<자바스크립트의 싱글 스레드 작업 수행 방식> 

Thread -task A - taskB - taskC

자바스크립트는 코드가 작성된 순서대로 작업을 처리함

이전 작업이 진행 중 일때는 다음 작업을 수행하지 않고 기다림 

먼저 작성된 코드를 먼저 다 실행하고 나서 뒤에 작성된 코드를 실행한다. 

--> 동기 방식의 처리 

 

동기적 처리의 단점은 하나의 작업이 너무 오래 걸리게 될 시, 

모든 작업이 오래걸리는 하나의 작업이 종료되기 전 까지 올 스탑 되기 때문에, 전반적인 흐름이 느려진다. 

--> 동기처리 방식의 문제점 

 

코드를 실행하는 일꾼인 Thread를 여러개 사용하는 방식인 MultiThread 방식으로 작동시키면 이런 식 으로 작업 분할이 가능하다. 

오래 걸리는 일이 있어도 다른 일꾼 Thread에게 지시하면 되므로 괜찮다. 

 

그러나 자바스크립트는 싱글 쓰레드로 동작한다. 

즉 이런 방식으로 일꾼을 여러개 사용하는 방법 상용이 불가함. 

 

싱글 쓰레드 방식을 이용하면서 동기적 작업의 단점을 극복하기 위해 여러 개의 작업을 동시에 실행시킨다. 

즉, 먼저 작성된 코드의 결과를 기다리지 않고 다음 코드를 바로 실행한다. 

-->비동기 처리 방식

 

function taskA(){
  console.log("A 작업 끝");
}
taskA();
console.log("코드 끝");
#동기적 방식
function taskA(){
  setTimeout(()=>{
    console.log("A TASK END");
  },2000);
}
taskA();
console.log("코드 끝");
#비동기적방식

**복습다시합시다... 

'개발 > javascript' 카테고리의 다른 글

[javascript]async & await  (0) 2023.07.26
[javascript]Promise & 콜백지옥  (0) 2023.07.25
[javascript]응용  (0) 2023.07.23
[javascript] 응용1  (0) 2023.07.04
[javascript]기본정리5  (0) 2023.07.03