동기 : 한 프로시저(함수)를 호출한 시점과 끝 시점을 알 수 있는것.
비동기 : 한 프로시저(함수)를 호출한 시점과 끝 시점을 알 수 없는것.
정의는 어떻게 하냐에 따라 다르지만, '시간'이라는 개념을 좀 집중해서 정의하면 저렇게 하려고함.
호출한 시간과 호출을 끝낸 시간이 예측되는지 여부로.
+) 멀티스레드가 꼭 비동기의 구현에 필요한건 아님. (보통은 멀티쓰레드를 활용해 구현하겠지만)
익명(180.71)2022-09-20 14:07
답글
javascript의 동기/비동기를 이해할 땐 걍
Js engine은 싱글스레드 머신이다. 그래서 하나의 콜 흐름에 모든것들을 '순차'적으로만 처리하고 예측 가능한대로 처리한다가 기본이고
js의 런타임 환경 (브라우저/노드)가 그것들을 알아서 잘 활용해 처리한다 (이벤트루프 개념) 등을 알고있으면 됨.
익명(180.71)2022-09-20 14:09
답글
Promise같은거는 그래서 JS Engine외부의 별도 큐를만들어서 저런것들을 JS Engine처리와 별도로 하게 만드는거고
어셈블리 코드로 동기/비동기/멀티스레드 이해하는게 젤 빠름
비동기는머임? 그게 멀티쓰레드아님?
동기 : 한 프로시저(함수)를 호출한 시점과 끝 시점을 알 수 있는것. 비동기 : 한 프로시저(함수)를 호출한 시점과 끝 시점을 알 수 없는것. 정의는 어떻게 하냐에 따라 다르지만, '시간'이라는 개념을 좀 집중해서 정의하면 저렇게 하려고함. 호출한 시간과 호출을 끝낸 시간이 예측되는지 여부로. +) 멀티스레드가 꼭 비동기의 구현에 필요한건 아님. (보통은 멀티쓰레드를 활용해 구현하겠지만)
javascript의 동기/비동기를 이해할 땐 걍 Js engine은 싱글스레드 머신이다. 그래서 하나의 콜 흐름에 모든것들을 '순차'적으로만 처리하고 예측 가능한대로 처리한다가 기본이고 js의 런타임 환경 (브라우저/노드)가 그것들을 알아서 잘 활용해 처리한다 (이벤트루프 개념) 등을 알고있으면 됨.
Promise같은거는 그래서 JS Engine외부의 별도 큐를만들어서 저런것들을 JS Engine처리와 별도로 하게 만드는거고
https://www.youtube.com/watch?v=8aGhZQkoFbQ
걍
이렇게 쉽게 알려주는 레전드 강의 유튜브에 치면 뚝딱 나옴..
잘모르는데 동기화가 그냥 모든 언어 기본베이스아님??