스레드(thread)

용어정리

이 카테고리는 비전공자로서 개발자로써 공부하며, 평소 이해하지 못한 단어를 제방식대로 정리하는 카테고리입니다.
제방식대로 풀어 쓴것이므로 오류가 있을 수 있습니다.
오류가 있을시 댓글로 남겨주시면 참고하도록 하겠습니다.


스레드(thread)

한글로 스레드라 표기하겠습니다.

자바스크립트를 포함 여러 개발 서적 또는 웹문서들을 읽다 보면, 굉장히 많이 나오는 용어 중 하나이다.
스레드….싱글스레드….멀티스레드….
도대체 스레드란 무엇인가?
위키를 통해 스레드를 알아보자.
정리를 하면 프로그램 내에서 프로세스가 실행되는 흐름의 단위이다.

그렇다면 프로세스는 무엇인가?
프로세스소프트웨어가 실행되는 작업단위이다.

이말인즉, 프로그램(소프트웨어) > 프로세스 > 스레드 라고 보면 이해하면 된다.
스레드가 모여 프로세스가 되고, 프로세스가 모여 하나의 프로그램이 된다.

자바스크립트의 스레드

각 언어별 특이한 사항들이 있다.
자바스크립트의 특징은 싱글스레드라는 것이다.

싱글스레드
싱글스레드는 말 그대로 하나의 직렬로 처리하는 스레드 방식이라는 것이다.
이말인 즉 하나의 요청이 있으면 하나를 처리할때까지 다음 요청은 대기상태라는것이다.
하나씩만 실행 할 수 있다.라는 뜻이다.

물론 자바스크립트에서도 멀티스레드 비슷한 방식으로 처리 하기위해 WebWork를 사용하면 된다.
멀티스레드는 여러개의 스레드를 사용한다는 방식인대,
실제 한번에 두가지 일을 동시에 병렬로 처리하는 것이 아니라 번갈아 가며 처리하므로써 동시에 작업이 처리되는 것처럼 느끼게 하는 방식이다.
이는 채팅을 예로 들면, 상대방의 메시지를 다운 받는 동안 나는 입력을 할 수 없을 경우 멀티스레드를 사용하여 다운과 입력을 동시에 처리하는 것과 같다.

정리해보면 그림과 같다.
싱글스레드와 멀티스레드
이미지 참조사이트-LG CNS

결론

싱글스레드와 멀티스레드를 사용할때 무작정 사용하는 것이 아니라
작업의 효율을 따져보고 직렬로 빠르게 처리해야할 것, 또는 병렬로 다중으로 처리해야할 것을 구분하여
상황에 맞게 사용해야 한다.

댓글