님이 직접 js로 짠 코드 라인 자체는 node thread 쓴게 아닌이상 싱글스레드에서 하나씩 실행됨이 보장됨 - dc App
야딩조무사(cir6174)2024-10-22 02:08
답글
코드 자체에거 병렬성은 전혀 없고 그냥 promise 형태로 래핑된 인터페이스가 io나 내부 스레드 풀을 써서 동시성을 가질 수 있는거지
님이 직접 써넣은 코드 자체는 동시성도 없고 병렬실행도 없음 - dc App
야딩조무사(cir6174)2024-10-22 02:11
답글
그럼 promise all에서 여러 함수를 동시 실행했을때
함수 실행이 1 끝나고 >2 끝나고>3>4가 아니라
라인마다 브레이크 포인트 걸어보면 1>2>3>4>1>2>3>4> 이런식으로 가는 이유가 뭐야? 이러면 if도 동시에 검사할 수 있는거 아냐?
익명(223.38)2024-10-22 15:45
답글
비동기 병렬 동시성 다 다른거임 3개 혼동하고 있는듯 - dc App
야딩조무사(cir6174)2024-10-22 15:48
답글
await이 걸리는 시점에서 싱글스레드 비동기 런타임이 실행 스택을 yield 해서 그렇게 보이는거고
코드 자체가 병렬로 도는건 아님
node 내부에서 promise로 구현된 네이티브 코드직접 보는게 이해 빠를거임 - dc App
야딩조무사(cir6174)2024-10-22 15:57
답글
if 표현식 중간에 await을 걸어서 돌리면 님이 말한 것 처럼 보일 수는 있는데 실제로 병렬은 아님 - dc App
야딩조무사(cir6174)2024-10-22 16:12
답글
이거 말이 좀 어려운데 님 코드가 병렬로 도는건 아닌걸 보장할 수 있고 await이 걸리는 Promise 테스크 자체는 node 엔진 뒤에서 동시성을 갖고 실행되는데 이 작업 이후 다시 님 코드로 돌아오면 거기선 둥시성 병렬성은 없고 비동기만 있어서 실행이 여기저기로 뛰는것 처럼 보임 - dc App
야딩조무사(cir6174)2024-10-22 16:33
없음 보장 가능함
워커 쓰는거 아니면 같은 조건문이 동시간대에 평가될 수 없음
Promise.all 로 병렬 실행하더라도 실제로 병렬 실행되는 부분은 비동기 입출력이 발생하는 부분만임
익명(118.235)2024-10-22 08:45
답글
그럼 promise all에서 여러 함수를 동시 실행했을때
함수 실행이 1 끝나고 >2 끝나고>3>4가 아니라
라인마다 브레이크 포인트 걸어보면 1>2>3>4>1>2>3>4> 이런식으로 가는 이유가 뭐야? 이러면 if도 동시에 검사할 수 있는거 아냐?
경쟁조건이 발생하냐는말임?
병렬실행일때 동일한 if 조건문을 순서대로 탈 수 있지않을까 하냐는말임
없을듯 인터프리터는 싱글스레드라
싱글스레드여도 병렬실행이면 발생할 수도 있지않을까
님이 직접 js로 짠 코드 라인 자체는 node thread 쓴게 아닌이상 싱글스레드에서 하나씩 실행됨이 보장됨 - dc App
코드 자체에거 병렬성은 전혀 없고 그냥 promise 형태로 래핑된 인터페이스가 io나 내부 스레드 풀을 써서 동시성을 가질 수 있는거지 님이 직접 써넣은 코드 자체는 동시성도 없고 병렬실행도 없음 - dc App
그럼 promise all에서 여러 함수를 동시 실행했을때 함수 실행이 1 끝나고 >2 끝나고>3>4가 아니라 라인마다 브레이크 포인트 걸어보면 1>2>3>4>1>2>3>4> 이런식으로 가는 이유가 뭐야? 이러면 if도 동시에 검사할 수 있는거 아냐?
비동기 병렬 동시성 다 다른거임 3개 혼동하고 있는듯 - dc App
await이 걸리는 시점에서 싱글스레드 비동기 런타임이 실행 스택을 yield 해서 그렇게 보이는거고 코드 자체가 병렬로 도는건 아님 node 내부에서 promise로 구현된 네이티브 코드직접 보는게 이해 빠를거임 - dc App
if 표현식 중간에 await을 걸어서 돌리면 님이 말한 것 처럼 보일 수는 있는데 실제로 병렬은 아님 - dc App
이거 말이 좀 어려운데 님 코드가 병렬로 도는건 아닌걸 보장할 수 있고 await이 걸리는 Promise 테스크 자체는 node 엔진 뒤에서 동시성을 갖고 실행되는데 이 작업 이후 다시 님 코드로 돌아오면 거기선 둥시성 병렬성은 없고 비동기만 있어서 실행이 여기저기로 뛰는것 처럼 보임 - dc App
없음 보장 가능함 워커 쓰는거 아니면 같은 조건문이 동시간대에 평가될 수 없음 Promise.all 로 병렬 실행하더라도 실제로 병렬 실행되는 부분은 비동기 입출력이 발생하는 부분만임
그럼 promise all에서 여러 함수를 동시 실행했을때 함수 실행이 1 끝나고 >2 끝나고>3>4가 아니라 라인마다 브레이크 포인트 걸어보면 1>2>3>4>1>2>3>4> 이런식으로 가는 이유가 뭐야? 이러면 if도 동시에 검사할 수 있는거 아냐?
오픈카톡 파보셈 댓글로 설명할라면 좀 불편함