스레드는 멀티프로세서 시스템의 능력을 최대한 끌어낼 수 있는 가장 쉬운 방법
프로세서 개수가 늘어날수록 여러 작업을 동시에 실행하는 일이 더욱 중요하다.
프로세스 개념을 만들어 낸 것과 같은 이유로 스레드가 고안됨
스레드로 인해 한 프로세스 안에 여러 개의 프로그램 흐름이 공존 가능
스레드는 메모리, 파일 핸들 등 프로세스를 내 할당 자원을 공유함
스레드는 가벼운 프로세스로 불리움
한 프로세스 내 스레드들은 같은 변수에 접근이 가능. 같은 힙에 객체 할당
⇒ 프로세스 보다 세밀한 단위로 데이터 공유 가능
공유 데이터 접근 과정을 적절하게 동기화하지 않으면 예상치 못한 결과를 얻을 수 있음