바르고 뜨겁게
Javascript 싱글 스레드 눈으로 확인하기. 본문
Javascript 싱글 스레드 눈으로 확인하기.
자바스크립트는 자바와는 다르게 싱글 스레드라고 한다.
한번에 하나의 작업만 수행할 수 있음에도 불구하고 비동기, 논블로킹등을 지원하기에 실제 코드상 눈으로 확인하긴 어렵다.
따라서 아래 자바와의 비교를 코드를 통해 싱글 스레드를 눈으로 확인해보겠다.
잘못 된 정보가 있다면 댓글로 알려주길 바랍니다!
JAVA
public class NoSyncDataMain {
public static Data data = new Data();
public static void main(String[] args) {
System.out.println("main 시작");
Tom t = new Tom();
Jane j = new Jane();
t.start();
j.start();
System.out.println("main 종료");
}
}
class Tom extends Thread {
public void run() {
for (int i = 0; i < 1000000; i ++) {
NoSyncDataMain.data.i ++;
}
System.out.println("Tom : " + NoSyncDataMain.data.i);
}
}
class Jane extends Thread {
public void run() {
for (int i = 0; i < 1000000; i ++) {
NoSyncDataMain.data.i ++;
}
System.out.println("Jane : " + NoSyncDataMain.data.i);
}
}
class Data {
public int i = 0;
}
Javascript
let mCnt = 0;
console.log("main 시작")
new Promise((resolve, reject) => {
for (let i = 0; i < 1000000; i++) {
mCnt = mCnt + 1;
}
resolve()
}).then((resData) => {
console.log("Tom : " + mCnt)
});
new Promise((resolve, reject) => {
for (let i = 0; i < 2000000; i++) {
mCnt = mCnt + 1;
}
resolve()
}).then((resData) => {
console.log("Jane : " + mCnt)
});
console.log("main 종료")
온라인 코드실행기 : https://hashcode.co.kr/code_runners?language=javascript
'자바스크립트' 카테고리의 다른 글
[web rtc #1] Web 브라우저에서 웹캠 비디오 스트리밍 (0) | 2020.09.28 |
---|---|
JavaScript - dot(.) 점이 있는 JSON parsing (0) | 2019.09.09 |
자바스크립트에서 YouTube REST API 사용 (0) | 2019.05.04 |