요즘 OS는 모두 멀티태스킹을 지원한다

멀티태스킹이란?

예를 들면, 컴퓨터로 음악을 들으면서 웹서핑도 하는 것

쉽게 말해서 두 가지 이상의 작업을 동시에 하는 것을 말한다.

실제로 동시에 처릴될 수 있는 프로세스의 개수는 CPU 코어의 개수와 동일한데, 이보다 많은 개수의 프로세스가 존재하기 때문에 모두 함께 동시에 처리할 수 없다.

각 코어들은 아주 짧은 시가농안 여러 프로세스를 번갈아가며 처리하는 방식을 통해 동식에 동작하는 것처럼 보이게 할 뿐이다.

이와 마찬가지로, 멀티스레딩이란 하나의 프로세스 안에 여러 개의 스레드가 동시에 작업을 수행하는 것을 말한다. 스레드는 하나의 작업단위라고 생각하면 편하다.

스레드 구현

자바에서 스레드 구현 방법은 2가지가 있다.

  1. Runnable 인터페이스 구현
  2. Thread 클래스 상속

둘 다 run() 메소드를 오버라이딩 하는 방식이다.

public class MyThread implements Runnable {
    @Override
    public void run() {
        // 수행 코드
    }
}
public class MyThread extends Thread {
    @Override
    public void run() {
        // 수행 코드
    }
}