예를들어 c 혹은 c++ 로 쓰레드 3개를 만들고, cpu 는 두 개가 있다고 가정해보자. 이 경우, 운영체제는 3개의 쓰레드가 2개의 cpu를 잘 활용하기 위해서 스케줄링을 하고, 컨텍스트 스위칭을 통해 쓰레드가 소외되지 않고 cpu를 골고루 사용하게 해준다. 자바의 경우 자바 쓰레드를 하나 만들 때마다 os 레벨에서 쓰레드가 생긴다. 위와 같이 자바 쓰레드 3개를 생성하면 os 레벨에 쓰레드도 3개 생성된다. 그리고 os 레벨의 쓰레드를 os 쓰레드 혹은 커널 쓰레드라고 부른다. 커널 쓰레드는 생성 시 약 1~2MB 메모리 용량이 소모된다. 그리고 쓰레드가 많아지면 os 가 스케줄링하기 버거워지며 컨텍스트 스위칭도 많이 일어나기 때문에 쓰레드를 많이 만드는 것은 많은 고민이 필요하다. ...