카테고리 없음

[TIL] Thread

Twisted 2024. 10. 21. 23:57

프로세스와 쓰레드 이것들이 뭘까?

 

프로세스 : 운영체제로부터 자원을 할당받는 작업의 단위

 

쓰레드 : 프로세스가 받은 자원을 이용하는 실행의 단위

 

 

쓰레드의 선언 방법

쓰레드를 이용하는 방법으로는 이렇게 두가지가 있다.

1. 쓰레드 클래스를 작성하는 것과 

2. Runnable 인터페이스를 구현하는 방법

 

두개의 차이가 뭘까?  먼저 쓰레드의 생명주기를 알아보자

 

이런식으로 NEW상태로 객체만 만들어진 상태, start()를 통해 RUNNABLE인 실행 대기상태,  상황에 따라서 실행되고 실행대기 상태를 왔다갔다 반복할 수 있다. 그러고 마지막엔 종료 상태로 넘어가게 된다. 

 

 

위에서 봤던 두 방법중 

1번 방법은 쓰레드 클래스를 이용하여 선언했던 방법으로 쓰레드를 생성하면 NEW상태가 되고 이를 start()메서드를 통해서 쓰레스를 실행시키고 run()이 작동되는 방식으로 돌아간다.

 

2번 방법은 인터페이스를 이용하였고 쓰레드를 생성할때 Runnable 객체를 전달하게 된다. 

 

이 두가지 방법의 큰 차이가 무엇일까?

 

바로 자바를 이용하여 나타나는 점인데 자바는 클래스의 다중 상속이 불가능하다는 점이다.

1번 방법을 이용하게 되면 이미 다른 클래스를 상속받은 경우 여러개의 상속이 불가능하다는 단점이 있지만 2번 방법의 경우에는 클래스가 아닌 인터페이스로 구현되어 다른 클래스를 상속받은 상태에서도 사용이 가능하다는 장점이 있다.

 

다음엔 멀티쓰레드에 대하여 알아보자