프로세스(process), 쓰레드(thread) 생성
1. 프로세스
-컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 --> 프로세스
-Code, Data, Stack, Heap영역의 구조로 되어있는 독립된 메모리 영역.
-멀티 프로세싱: 하나의 응용프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하게 하는 것.
2. 쓰레드
-프로세스의 자원을 이용해서 실제로 자업을 수행하는 역할 --> 쓰레드
- 모든 프로세스에는 최소한 하나의 쓰레드가 존재함
- 쓰레드는 프로세스 내에서 각각 stack만 따로 할당받고 Code,Data,Heap영역은 공유.
- 쓰레드가 두개 이상이면 멀티 쓰레드(Multi-Thread)
프로세스 생성 방법
자바에서는, 런타임 환경이 프로세스가 실행될 수 있는 기반 환경을 제공해 주기 때문에, 런타임 환경을 만든 후, 프로레스를 생성해야 한다.
Runtime runtime = Runtime.getRuntime(); <-- 런타임 객체를 생성
Process p = runtime.exec(“프로그램경로명”); <-- exec 메소드를 이용해 프로세스 생성
-Process 클래스가 제공해 주는 주요 메소드를
public abstract OutputStream getOutputStream(): 자식 프로세스의 출력 스트림을 얻음.
public abstract InputStream getInputStream(): 자식 프로세스의 입력 스트림을 얻음.
public abstract InputStream getErrorStream(): 자식 프로세스의 에러 스트림을 얻음.
public abstract int waitFor() throws InterruptedException: 자식 프로세스가 종료될 때까지 기다림.
public abstract int exitValue(): 자식 프로세스가 종료할 때의 상태값을 얻음.
public abstract void destroy(): 자식 프로세스를 강제로 종료시킴.
참고, 출처:
자바 프로세스와 쓰레드의 차이점과 정의
안녕하세요 코딩하는 공대생입니다 오늘은 자바에서 Thread 라는 개념에 대해서 알아 볼 것입니다 우선 Thread 라는 개념을 알기전에 알아야할 것이 있습니다! 프로그램을 실행하고있습니다 이것
allhpy35.tistory.com
자바 Process 클래스
1 프로세스 생성 및 종료 일반적으로 프로그램을 실행시키면, 하나의 프로세스로서 동작하게 됩니다. 다시 ...
blog.naver.com
[JAVA] 쓰레드(thread)와 프로세스(process),멀티쓰레드, 멀티프로세싱, 데몬쓰레드(Daemon),동기화(Synchro
▶ [JAVA] 쓰레드(thread)와 프로세스(process),멀티쓰레드, 멀티프로세싱, 데몬쓰레드(Daemon),동기화(Synchronized) ● 프로세스(Process) : 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램입니다..
choseongho93.tistory.com