[Java] 프로세스와 스레드 - 1
·
BackEnd/Java
프로세스와 스레드멀티태스킹과 멀티프로세싱만약 프로그램을 두개 이상 동시에 실행한다고 가정해보자. 연산을 처리할 수 있는 cpu 코어는 1개만 있다고 가정한다. 하나의 cpu 코어가 매우 빠르게 두개의 작업을 번갈아 가면서 처리하게 되면 사람은 이것이 같이 동시에 실행된다고 느끼게 된다. 이렇게 각 프로그램의 실행 시간을 분할해서 마치 동시에 실행되는 것 처럼 하는 기법을 시분할 기법이라고 한다. 그리고 이렇게 하나의 컴퓨터 시스템이 동시에 여러 작업을 수행하는 것을 멀티태스킹 이라고 한다. cpu에 어떤 프로그램이 얼마만큼 실행될지는 운영체제가 결정하는데 이것을 스케줄링 이라고 한다. 이때 단순히 시간으로만 작업을 분할하지는 않고, cpu를 최대한 활용할 수 있는 다양한 우선순위와 최적화기법을 사용한다...