[OS]스레드(thread)
·
CS/운영체제
스레드의 정의CPU 스케줄러가 CPU에 전달하는 가장 작은 작업 단위이다.CPU가 처리하는 최소 단위로, 하나의 프로세스 내부에서 여러 스레드가 실행될 수 있다.프로세스의 최소 단위로, 여러 스레드는 동일한 프로세스 내에서 메모리 자원 등을 공유한다.프로세스와 스레드의 차이프로세스: 작업 단위로 운영체제에서 관리되는 실행 단위, 여러 프로세스가 동시에 실행될 수 있다.스레드: 프로세스 내에서 실제로 작업을 수행하는 실행 단위, 하나의 프로세스는 여러 스레드를 포함할 수 있다.예시로 보는 차이요리사 모형으로 예로 들어보면 프로세스는 각각의 요리(task)로 생각할 수 있다. 예를 들어, 스프, 스테이크, 디저트 등 각기 다른 요리가 독립적으로 준비된다.스레드는 각 요리를 준비하는 과정에서 발생하는 세부 작..
[JAVA]Runnable 인터페이스를 구현해서 스레드를 만드는 이유
·
Language/JAVA
Java에서 멀티스레드를 구현하는 방법으로는 Thread 클래스를 상속받는 방법과 Runnable 인터페이스를 구현하는 방법이 있다. Thread 클래스를 상속받는 방식은 상대적으로 간단하고, 스레드의 생명 주기를 관리(시작, 중지, 대기)하는 여러 메서드도 제공하여, 멀티스레드를 쉽게 다룰 수 있는 장점이 있다. 하지만 Runnable 인터페이스를 구현하는 방법을 더 선호하는데 그 이유는 다음과 같다.다중 상속의 유연성Java는 다중 상속을 지원하지 않는다. 즉, 한 클래스는 오직 하나의 클래스를 상속받을 수 있다. 만약 Thread 클래스를 상속받는다면, 다른 클래스를 상속받을 수 없게 된다. 하지만 Runnable은 인터페이스이므로, 여러 클래스를 상속받을 수 있는 유연성을 제공한다. 이를 통해 다..