요즘 OS는 모두 멀티태스킹을 지원한다
멀티태스킹이란?
예를 들면, 컴퓨터로 음악을 들으면서 웹서핑도 하는 것
쉽게 말해서 두 가지 이상의 작업을 동시에 하는 것을 말한다.
실제로 동시에 처릴될 수 있는 프로세스의 개수는 CPU 코어의 개수와 동일한데, 이보다 많은 개수의 프로세스가 존재하기 때문에 모두 함께 동시에 처리할 수 없다.
각 코어들은 아주 짧은 시가농안 여러 프로세스를 번갈아가며 처리하는 방식을 통해 동식에 동작하는 것처럼 보이게 할 뿐이다.
이와 마찬가지로, 멀티스레딩이란 하나의 프로세스 안에 여러 개의 스레드가 동시에 작업을 수행하는 것을 말한다. 스레드는 하나의 작업단위라고 생각하면 편하다.
자바에서 스레드 구현 방법은 2가지가 있다.
둘 다 run() 메소드를 오버라이딩 하는 방식이다.
public class MyThread implements Runnable {
@Override
public void run() {
// 수행 코드
}
}
public class MyThread extends Thread {
@Override
public void run() {
// 수행 코드
}
}