본문 바로가기

---- Contents ----164

콜백 함수(테스크 큐) QNA & 멀티 프로세싱 콜백함수가 항상 이벤트리스너가 있는 것은 아니다. * 함수에서 바로 즉시 실행되서 호출스택에만 머무를 수도 있다. * 콜백함수라고 무조건 테스큐에 가는것이 아님. * 이벤트리스너에 달린 콜백함수들이 이벤트가 실행될 때 => 테스크 큐로 들어간다. * 멀티스레드로 프로그래밍을 하는 것이 어렵다. * 노드가 싱글스레드이지만, 노드가 쓰는 프로세스를 여러개 만들어서 => 멀티 프로세싱을 하면서 싱글스레드 단점을 극복한다. 2019. 10. 19.
None Blocking & IO 태스크 큐로 보내는 동작을 논블로킹이라고 한다. (순서가 달라짐) 인풋 아웃풋 IO 크게 두가지 => 파일 시스템, 네트워크 파일 시스템 IO => 파일 열고 닫고, 쓰고, 이미지 저장, 서버 파일에 쓰는 IO 네트워크 IO => 네트워크 보내고 받고 함. *파일시스템 => 멀티로 돌린다. (자체적으로 논블로킹으로 동작한다. ) *싱글 스레드 (자바스크립트) 블로킹이 발생한다. *논블로킹으로 순서를 바꿔서 효율적으로 하게끔 한다. *파일시스템은 알아서 동시에 작업할 수 있도록 도와준다.(멀티스레드) 네트워크 테스크 거쳐서 논블로킹 2019. 10. 19.
서버&클라이언트 , 테스크 큐 => 이벤트루프 => 호출스택(콜스택) 서버란 클라이언트에게 요청을 받아서 응답해주는 것 서버가 클라이언트가 될 수 있음. 서버가 서버에게 요청을 보낼 수 있음. *하지만, 언제 요청이 올지 모른다. 그래서 이용하는 것이 이벤트 리스너. ex) *방문(이벤트) => HTML 받는다.(콜백함수) *댓글등록 => 댓글 저장(콜백함수) 테스크 큐 (콜백들은 테스크 큐에 들어옴) (HTML) (콜백함수) / (HTML) (콜백함수) / (댓글 저장)(콜백함수) => 이벤트 루프(여러개의 테스크 규에서 우선순위를 파악해서 호출스택으로 불러서 실행해준다. => 호출 스택 (해당 함수들이 실행되는 부분) (댓글 저장) 실행 => done (HTML) 실행 => done (HTML) 실행 => done 2019. 10. 19.