Backend
Vert.x
wahu
2020. 2. 18. 21:34
Vert.x API는 event driven이다. Vert.x는 발생한 이밴트 처리를 핸들러에게 맡긴다.
대부분 Vert.x는 event loop thread를 사용하여 핸들러를 호출한다.
Vert.x event loop
Vert.x는 Node.js 의 single event loop와는 다르게 여러개의 event loops를 유지한다. 기본적으로 사용 가능한 core의 숫자에 기반하여 숫자를 결정한다. 이 숫자는 변경할 수 있다.
Vert.x Golden Rule - Event loop를 Block 시키면 안된다.
handler에서 event loop를 블럭 시킨다면 event loop는 블럭이 해제될 때까지 아무것도 할 수 없다.
Blocking examples
* Thread.sleep()
* lock 기다림, mutex 기다림, 긴 database 작동, 오래걸리는 복잡한 계산, 긴 loop
event driven