Multi Thread
일반적으로 하나의 프로세스는 하나의 스레드를 가지고 작업을 수행한다.
멀티 쓰레드는 당연하게도 둘 이상의 스레드가 동시에 작업하는 것을 의미한다.
그리고 멀티 프로세스(Multi Process)는 여러 개의 CPU를 사용하여 여러 프로세스를 실행하는 것을 의미한다.
멀티 프로세스는 각 프로세스가 독립적인 메모리를 가지고 동작하지만, 멀티 스레드는 각 스레드가 자신이 속한 프로세스의 메모리를 공유한다는 점에서 차이가 있다.
Context Switching
컴퓨터에서 동시에 처리할 수 있는 최대 작업 수는 CPU의 코어 수와 동일하다.
만약 CPU의 코어 수보다 많은 스레드가 실행 된다면 각 코어가 정해진 시간동안 여러 작업을 번갈아 가면서 수행하게 된다.
이때 각 스레드가 작업을 번갈아 가면서 서로 교체될 때 스레드 간의 Context Switching이 발생한다.
Context Switching이란 현재까지의 작업 상태나 다음 작업에 필요한 각종 데이터를 저장하고 읽어오는 작업을 의미한다.
단순히 의미하면 다음 스레드로 작업을 교체할 때 데이터를 저장하고 교체할 스레드의 데이터를 읽어오는 등의 작업을 의미하는데, 만약 단순하고 많은 양의 계산을 실행할 시 Context Switching에 시간을 소요하는 것 보다 싱글 스레드로 동작하는 것이 더 효율적일 수 있다는 점이다.
'웹개발 > 개념' 카테고리의 다른 글
[JAVA] String, Stringbuilder, Stringbuffer 차이점 (0) | 2022.10.12 |
---|---|
[JAVA] 상속과 오버라이딩 (0) | 2022.10.12 |
웹 개발 개념 정리 (0) | 2022.10.11 |
면접 대비 - 웹 브라우저에 도메인 입력하면 일어나는 일? (0) | 2022.10.11 |
URL과 URI의 차이점 (0) | 2022.10.11 |