자바 공부

프로세스(process), 쓰레드(thread) 생성

sh1256 2021. 2. 26. 21:13
728x90

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(): 자식 프로세스를 강제로 종료시킴.

 

참고, 출처:

allhpy35.tistory.com/34

 

자바 프로세스와 쓰레드의 차이점과 정의

안녕하세요 코딩하는 공대생입니다 오늘은 자바에서 Thread 라는 개념에 대해서 알아 볼 것입니다 우선 Thread 라는 개념을 알기전에 알아야할 것이 있습니다! 프로그램을 실행하고있습니다 이것

allhpy35.tistory.com

m.blog.naver.com/PostView.nhn?blogId=seban21&logNo=70103183454&proxyReferer=https:%2F%2Fwww.google.com%2F

 

자바 Process 클래스

1 프로세스 생성 및 종료 일반적으로 프로그램을 실행시키면, 하나의 프로세스로서 동작하게 됩니다. 다시 ...

blog.naver.com

choseongho93.tistory.com/38

 

[JAVA] 쓰레드(thread)와 프로세스(process),멀티쓰레드, 멀티프로세싱, 데몬쓰레드(Daemon),동기화(Synchro

▶ [JAVA] 쓰레드(thread)와 프로세스(process),멀티쓰레드, 멀티프로세싱, 데몬쓰레드(Daemon),동기화(Synchronized) ● 프로세스(Process) : 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램입니다..

choseongho93.tistory.com