[back-end]/자바-소켓

program, process, thread

broship 2020. 12. 28. 21:08

- 프로그램(program) : 어떤 파일이나 소스가 디스크에 있는 상태

ex) 메모장 실행파일 notepad.exe

 

- 프로세스(process) : 디스크에 있는 프로그램이 메모리에 올라와 있는 상태

ex) 메모장이 화면에 보일때 

 

- 쓰레드(thread): 프로세스 위에서 동작하는 경량 프로세스(Lightweight Process), 기본은 1 process - 1 thread

1. single thread: 1 process - 1 thread (작업이 발생할 때마다 프로세스를 생성해야되서 시스템 과부화가 생김)

ex) 일하는 사원 1명 - 복사기 1대

2. multi thread: 1 process - 여러 thread (시스템 과부화를 줄여줌)

ex) 일하는 사원 1명 - 복사기 3대

 

thread -> TSS(Time Sharing System, 시분할)

시분할: 여러개의 단말기가 각각 처리되어 지고 있는것처럼 보이나 각자 주어진 시간만큼만 수행하고 넘어감, 이때 지금까지 한 작업을 저장해 놓는 곳이 문맥스위치(context switch)

 

- 쓰레드가 되게 하는 클래스 만드는 2가지 방법

1. java.lang.Thread 클래스 상속: 쓰레드 클래스 이외에 다른 상속을 받을 필요가 없는 경우 사용(자바에서는 다중 상속 불가)

2. java.lang.Runnable 인터페이스 상속: 쓰레드 클래스 이외에도 다른 클래스를 상속 받아야 하는 경우 사용, 이왕이면 Runnable 사용하는 것이 좋음