본문 바로가기

개발

[Node.js] event loop


MEAN STACK node.js

테스트 환경 : Windows 10 64-bit


Node.js는 싱글스레드로 동작하며 실행중인 코드가 멈추면 서버가 중단된다.

Node.js는 I/O작업이 끝난 후 처리 될 callback함수만 있으면 다음 스레드의 진행여부에 상관없이 처리될 수 있다.


이벤트 루프란 코드 외부의 이벤트들을 처리하며, 결과를 callback으로 전달하는 객체라 할수 있다.


events 모듈 설치

node install events



신규 js파일 생성후 아래 코드 입력(eventLoop.js)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// events 모듈 호출
var events = require('events');
// eventEmitter 오브젝트 생성
var eventEmitter = new events.EventEmitter();
 
// event handler 생성
var connectHandler = function connected() {
   console.log('connection succesful.');
  
   // data_received 이벤트 발생
   eventEmitter.emit('data_received');
}
 
// 핸들러와 연결 이벤트를 바인딩
eventEmitter.on('connection', connectHandler);
 
// 함수와 data_received 이벤트 바인딩
eventEmitter.on('data_received'function(){
   console.log('data received succesfully.');
});
 
// connection 이벤트 발생
eventEmitter.emit('connection');
 
console.log("Program Ended.");
cs


CMD창에서 실행
node eventLoop.js



결과 출력

connection succesful.

data received succesfully.

Program Ended.



앞서 포스팅한 콜백함수 예제처럼 event handler 내부에 오류를 발생시켜 테스트를 해볼 수 있는 코드이다.



참조 : http://www.tutorialspoint.com/nodejs/nodejs_event_loop.htm






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

[Linux] 사용자 & 그룹 명령어 모음  (0) 2015.12.14
[Node.js] Event Emitter  (0) 2015.12.14
[Node.js] callback 함수 사용하기  (0) 2015.12.11
[Node.js] NPM - Node Package Manager  (0) 2015.12.09
[Node.js] REPL 사용  (0) 2015.12.08

맨 위로