EasyCastleUNITY

[과제] 프로세스(Process), 스레드 (Thread), 코루틴 ( coroutine ) 본문

개인 필기

[과제] 프로세스(Process), 스레드 (Thread), 코루틴 ( coroutine )

EasyCastleT 2023. 8. 15. 15:44

프로세스(Process) 

컴퓨터에서 실행중인 프로그램을 의미한다. 

따라서 실행되고 있는 프로그램들은 전부 프로세스라고 할 수 있다. 

 

프로세스의 상태는 5가지로 분류되며 아래와 같다. 

 

1. 생성: 프로세스가 생성
2. 실행: 프로세스가 CPU를 차지하여 명령어들이 실행되고 있음
3. 준비: 프로세스가 cpu를 사용하고 있지는 않지만, 언제든지 사용 가능한 상태
          cpu가 할당되기를 기다리고 있다. 
4. 대기: 보류라고 부르기도 한다. 프로세스가 어떠한 사건을 기다리고 있는 상태
5. 종료: 프로세스 실행 종료  

스레드 (Thread)

위에서 설명한 프로세스보다 더 작은 실행 흐름의 최소 단위이다.

프로세스 내에서 실제로 작업을 수행하는 주체이다. 

프로세스와 스레드

프로세스와 스레드에 대해 비교해서 설명해보자면

프로세스는 일을 처리하는 은행, 스레드는 그 은행안의 실질적인 일처리를 하는 창구라고 할 수 있다. 

 

즉 프로세스는 그 일을 하는 주체적인 기관을 말하고, 스레드는 그 기관안에서 실질적으로 일을 처리하는 것이라고 이해했다. 

스레드와 프로세스를 여러개 사용하는 멀티스레드와 멀티프로세스가 있다. 

 

내가 이해한 멀티스레드와 멀티프로세스는 

일을 처리하는 사람이 있다고 가정을 해보면,

멀티 스레드는 이 사람의 처리 능력을 올리기 위해 팔을 여러개 많드는 것이라고 할 수 있고,

멀티 프로세스는 이 일을 처리하는 사람을 더 많이 늘려 일의 능률을 올리는 방식이라고 이해했다. 

 

프로세스는 한 가지가 종료되도 다른 프로세스에는 웬만하면 영향을 미치지 않는다. 

스레드는 한가지만 해도 비정상적으로 종료되도 같은 프로세스 내의 스레드는 모두 종료된다. 

코루틴( coroutine )

많이 사용하는 코루틴은, 쉽게 말해서 필요에 따라서 일시 정지할 수 있는 함수를 말한다. 

이 방법을 통해 입출력 처리를 극대화하는 것이 가능하게 되었다.

 

자세한 설명은 다음 포스트에서 설명을 하겠다. 

 

'개인 필기' 카테고리의 다른 글

유니티 라이프 사이클  (0) 2023.08.16
[과제] 스레드와 코루틴  (0) 2023.08.15
[과제] 동기와 비동기  (0) 2023.08.14
Unity Animation  (0) 2023.08.02
Unity Rigidbody | Collider | AddForce  (0) 2023.08.02