본문 바로가기

스레드

(2)
[OS] 프로세스와 쓰레드의 차이 프로세스(process)와 스레드(thread)의 차이가 무엇일까? 이 질문에 대답을 하기 위해선 프로세스가 무엇인지, 스레드가 무엇인지 알아야한다. 그럼, 프로세스는 무엇일까 프로그램과 어떻게 다른까? 결론부터 말을 하자면 프로세스는 실행 중인 프로그램이다. 프로그램은 명령어(코드)와 정적인 데이터의 집합(묶음)이다.하드디스크 혹은 SSD에 존재하며 아직 실행되길 기다리고 있는 파일이다. 프로그램이 메모리에 적재되면 실행 가능한 상태가 되고 이를 프로세스라고 부른다. 프로세스는 운영체제로부터 필요한 자원을 할당 받는다. 그럼 스레드는 무엇일까. 스레드는 할당받은 자원을 이용하는 실행 단위이다. 정리하자면 Process : 작업의 단위 (자원을 할당받는) Thread : 실행의 단위 (할당받은 자원을 이..
[JAVA] Thead와 Runnable 차이 (미완) 자바에서 Thread를 구현하는 방법에는 2가지가 있다. 1. Thread Class를 상속(extends)하여 사용하는 방법 2. Runnable Interface를 구현(implements)하는 방법 둘의 차이는 무엇일까? 먼저 Thread는 "Class", Runnable은 "Interface"라는 점을 토대로 Class와 Interface의 차이를 생각해 볼 수 있다. 1. Java의 경우 다중상속이 불가능 하므로, Thread Class를 상속할 경우 다른 Class들을 상속할 수 없다. (Interface의 경우 여러 Interface를 구현할수 있다) 2. Thead Class를 상속받아 생긴 Thread 객체는 재사용을 할 수 없다. (Runnable을 구현한 경우 재사용 가능) Thead..