용어정리
이 카테고리는 비전공자로서 개발자로써 공부하며, 평소 이해하지 못한 단어를 제방식대로 정리하는 카테고리입니다.
제방식대로 풀어 쓴것이므로 오류가 있을 수 있습니다.
오류가 있을시 댓글로 남겨주시면 참고하도록 하겠습니다.
스레드(thread)
한글로 스레드라 표기하겠습니다.
자바스크립트를 포함 여러 개발 서적 또는 웹문서들을 읽다 보면, 굉장히 많이 나오는 용어 중 하나이다.
스레드….싱글스레드….멀티스레드….
도대체 스레드
란 무엇인가?
위키를 통해 스레드를 알아보자.
정리를 하면 프로그램 내에서 프로세스가 실행되는 흐름
의 단위이다.
그렇다면 프로세스
는 무엇인가?
프로세스는 소프트웨어가 실행되는 작업단위
이다.
이말인즉, 프로그램(소프트웨어) > 프로세스 > 스레드 라고 보면 이해하면 된다.
스레드가 모여 프로세스가 되고, 프로세스가 모여 하나의 프로그램이 된다.
자바스크립트의 스레드
각 언어별 특이한 사항들이 있다.
자바스크립트의 특징은 싱글스레드
라는 것이다.
싱글스레드
싱글스레드는 말 그대로 하나의 직렬
로 처리하는 스레드 방식이라는 것이다.
이말인 즉 하나의 요청이 있으면 하나를 처리할때까지 다음 요청은 대기상태라는것이다.하나씩만 실행 할 수 있다.
라는 뜻이다.
물론 자바스크립트에서도 멀티스레드 비슷한 방식으로 처리 하기위해 WebWork를 사용하면 된다.멀티스레드
는 여러개의 스레드를 사용한다는 방식인대,
실제 한번에 두가지 일을 동시에 병렬
로 처리하는 것이 아니라 번갈아 가며 처리하므로써 동시에 작업이 처리되는 것처럼 느끼게 하는 방식이다.
이는 채팅을 예로 들면, 상대방의 메시지를 다운 받는 동안 나는 입력을 할 수 없을 경우 멀티스레드를 사용하여 다운과 입력을 동시에 처리하는 것과 같다.
정리해보면 그림과 같다.
이미지 참조사이트-LG CNS
결론
싱글스레드와 멀티스레드를 사용할때 무작정 사용하는 것이 아니라
작업의 효율을 따져보고 직렬로 빠르게 처리해야할 것, 또는 병렬로 다중으로 처리해야할 것을 구분하여
상황에 맞게 사용해야 한다.