하나의 프로그램 -> 메모리에 올라가면 하나의 프로세스가 됨
이 프로세스가 수행되기 위해서는 cpu를 할당받아야 하는데, 그 단위는 스레드
가끔 하나의 프로그램에서 동시에 두가지 일이 진행되는 듯한 현상이있다. 프로그램을 다운받으면서 입력을 받는다던가 하는 등. 우리 눈에는 두개의 작업이 마치 동시에 이뤄지는 것처럼 보인다.
그런데, 이건 두개의 작업이 동시에 이루어지는 게 아니라, 멀티스레드, 즉 서로 CPU를 점유했다 내려왔다하는 작업(CPU 배분)을 하면서 스레드가 매우 빠르게 스위칭되며 동시에 일어나는 것처럼 느껴지게 된다.
자바는 주로 웹프로그래밍에 많이 사용된다.
request가 막 들어오면, 얘가 스레드를 막 생성을 해서 request들을 처리하는 구조
안드로이드 프로그래밍을 하다보면 스레드를 만들 일이 있고, 스레드 간에 메시지를 전송하고 뭐 그런 일들을 해야함.
스레드는 어느 랭귀지나 모두 생성할 수 있다.
스레드의 context 는 다 개별적으로 있다!
근데, 이 스레드가 동시에 공유하고 있는 자원이 있을 수 있다. 이것을 shared resource 라고 한다.