스레드란 프로세스의 실행 단위라고 할 수 있으며, 한 프로세스 내에서 동작되는 여러 실행 흐름으로 프로세스 내의 주소 공간이나 자원을 공유할 수 있다. 위의 그림과 같이 Code, data, files, registers, stack을 담고 있는 프로세스가 있다고 가정하자. 만약 사용자가 똑같은 프로그램 3개를 실행한다면, 아래의 그림과 같이 3개의 프로세스가 실행될 것이다. 그림을 보면 똑같은 프로그램을 바탕으로 실행한 프로세스임에도 불구하고, code, data, files 부분을 각각 갖고 있다. 이때 자원 낭비를 줄이고자 등장한 개념이 Threads(스레드)이다. code : 실행 중에 바뀌지 않기 때문에 1개만 존재하면 된다. data, files: 프로세스마다 다르기 하지만 자원 공유가 가능하..