일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 27 | 28 | 29 | 30 |
Tags
- Python
- go
- 함수
- Java
- 안드로이드
- golang
- javascript
- Kotlin
- Android
- as?
- Array
- 오버로딩
- HP
- 노트북 추천
- 싱글 스레드
- ListView
- var
- 연산자
- 배열
- node.js
- 노트북
- adapter
- Overloading
- 자바
- 자바스크립트
- 파이썬
- 패널 교체
- js
- 리스트 뷰
- 코틀린
Archives
- Today
- Total
Bbaktaeho
[Javascript/Node.js] 싱글 스레드 프로그래밍 (uncaughtExcetion) 본문
프로그래밍 (Programming)/자바스크립트 (JavaScript)
[Javascript/Node.js] 싱글 스레드 프로그래밍 (uncaughtExcetion)
Bbaktaeho 2020. 5. 26. 00:49반응형
📚 스레드
- CPU는 한 번에 하나의 명령만 수행 가능함
- CPU 클럭 수에 따라 처리속도가 결정
- CPU의 속도는 정해져 있고 한 번에 하나의 명령을 처리하는 단점을 극복하기 위해서 스레드를 도입함
- 스레드를 도입하여 운영체제의 스케줄러가 매우 짧은 주기로 다른 명령을 실행하면 동시에 여러 명령을 처리하는 것처럼 보임
📚 멀티 스레드 프로그래밍
- 스레드를 도입하여 운영체제의 스케줄러가 매우 짧은 주기로 다른 명령을 실행하면 동시에 여러 명령을 처리하는 것처럼 보임
- 멀티 스레드 프로그래밍은 대용량 처리에서 필수적으로 사용하는 프로그래밍 방식
- 단점으로 오류를 찾기 어렵고 구현할 때 고려할 사항이 많음
📚 싱글 스레드 프로그래밍
- Node.js는 싱글 스레드 프로그래밍으로 멀티 스레드 프로그래밍 성능을 구현하도록 구성되어 있음
- Node.js는 싱글 스레드 기반으로 동작하지만 모두 같은 스레드 위에서 동작하지 않는다는 점을 알아야 함
📗 uncaughtExcetion
모든 스레드에서 예외 처리를 할 수 있도록 하는 이벤트
-
process.on("uncaughtException", callback)
-
비동기 호출을 할 경우 함수를 호출한 영역과 콜백을 처리하는 영역이 각기 다른 스레드 위에서 동작
-
try catch 문으로 모든 스레드에서 예외 처리를 할 수 없음
-
nextTick 함수를 활용하여 비동기를 구현하고 uncaughtException 이벤트로 예외처리
비동기 처리를 위해 node.js의 내부 스레드 풀로 다른 스레드 위에서 콜백 함수를 동작시킴
function test(callback) {
process.nextTick(callback, 2);
}
function sqrtCB(num) {
throw Error('강제 에러 발생');
console.log('sqrt 완료', Math.sqrt(num));
}
try {
test(sqrtCB);
} catch (err) {
console.error('에러입니다');
}
process.on('uncaughtException', (err) => {
if (err) console.error(err.message);
});
에러발생
try catch 문으로 제어할 수 없던 예외 처리를 uncaughtException 이벤트로 제어함
반응형