카테고리 없음

0. 비동기 처리 (setTimeout, clearTimeout)

pakms980319 2024. 2. 23. 10:55

비동기 처리

여러 작업을 동시에 처리하기 위해 도입한 개념으로, 특정 작업의 완료를 기다리지 않고 다른 작업을 동시에 수행할 수 있도록 한다.

  • 자바스크립트에는 setTimeout(), fetch()와 같은 비동기 처리 함수가 있다.
  • 메인 스레드가 작업을 다른 곳에 인가하여 처리되게 하고, 작업이 완료되면 콜백 함수를 받아 실행하는 방식이다.


1. 동기


2. 비동기

 

Thread: 잡업 실행 단위(실행 흐름 단위)

동기 (Synchronous): 미리 정해놓은 약속대로 처리하는 작업 (절차흐름대로 처리 - 단일 스레드 단위)

비동기 (Asynchronous): 정해진 약속대로 처리하는게 아니라 필요한 상황에 따라 다르게 처리(실행흐름분리 - 스레드 따로 형성)


1) 비동기 처리함수

 

1-1) setTimeout( () => {}, time ) : 일정 시간 이후 특정 작업을 수행한다 (비동기 처리)

  • 비동기 처리는 전체 실행과 별도로 실행된다
  • sr-Process 2는 5초 후에 1번 실행된다 (worker-thread-01)
  • sr2-Process 2는 3초 후에 1전 실행된다 (worker-thread-02)

1-2) setTimeOut(...) 의 반환값과 비동기 처리 취소 (clearTimeout)

 

setTimeOut()의 반환값은 해당 비동기 처리 프로세스의 식별값을 return한다.

그 식별값을 이용하여 비동기 처리 프로세스를 취소할 수 있다. 

 


3. 비동기 프로그래밍의 문제점

 

한 자원에 대해 2개 이상의 쓰레드가 동시에 접근하여 변경할 수 있다.

 

해결법

 

임계 구역(영역) 설정

  • 병렬컴퓨팅에서 둘 이상의 스레드가 동시에 접근해서는 안되는 공유 자원을 접근하는 코드의 일부이다
  • 지정된 시간이 지난 후 종료된다

출처

 

https://inpa.tistory.com/entry/%F0%9F%8C%90-js-async

 

🌐 자바스크립트의 핵심 '비동기' 완벽 이해 ❗

자바스크립트의 동기와 비동기 자바스크립트는 싱글 스레드 언어이기 때문에 한 번에 하나의 작업만 수행할 수 있다. 즉, 이전 작업이 완료되어야 다음 작업을 수행할 수 있게 된다. 우리가 프

inpa.tistory.com