이전 글 내용처럼, 프로세스가 메모리에 올라갈 때 운영체제로부터 자원을 할당받는다. 이 때 각각 독립된 메모리 영역(Code/Data/Stack/Heap) 을 할당해주기 때문에 프로세스는 다른 프로세스의 변수나 자료에 접근할 수 없다.
이와 다르게 스레드는 메모리를 서로 공유할 수 있다. 스레드는 코드 내의 함수로 표현할 수 있다. 예를 들어 어떤 프로그램에서 메인 함수는 하나의 스레드가 되는 것이다.
스레드는 실행 흐름의 단위라고 했지만, CPU 입장에서는 스레드가 최소 작업의 단위이고 운영체제 입장에서는 프로세스가 최소 작업 단위인 것이다.
본론으로 가서 멀티태스킹과 멀티스레드를 알아보자!
(멀티태스킹은 여러 프로세스가 동시에 실행되는 것처럼 보이지만 그렇지 않다.)
멀티스레드 장점
멀티스레드 단점