Back-end/Java

(JAVA) 쓰레드(Thread)

이안_ian 2018. 10. 14. 16:39
반응형

프로세스란?


실행중인 하나의 프로그램을 말한다. 하나의 프로그램이라도 실행시마다 개별 프로세스가 생성이 된다. 하나의 프로세스는 하나 이상의

스레드와 할당받은 자원(메모리 등)이 존재한다.


쓰레드란?


프로세스 내에서 실제 작업을 수행하는 작업 단위이다. 모든 프로세스는 하나 이상의 스레드를 가지며 각각 독립적인 작업 단위를 가진다.


멀티 프로세스 vs 멀티 스레드

독립적으로 프로그램을 실행하는 것을 멀티 프로세스라고 하고, 한 개의 프로그램을 실행하고 내부적으로 여러가지 작업을 처리 하는 것을

멀티 스레드라고 한다.


스레드는 싱글 스레드와 멀티 스레드가 있는데 싱글 스레드는 하나의 작업이 끝나면 다른 스레드가 작업을 시작을 하는것이고 멀티 쓰레드는

서로 틈만 나면 뺏어서 돌아가기 때문에 작업1,작업2가 서로 정신없이 끼어들어서 실행이되서 여러개가 동시에 진행된다.


쓰레드의 생성방법 2가지

1.Thread클래스를 상속받아 직접 생성

  class 클래스명 extends Thread{ }

//상속 처리 후 , run() 메소드 오버라이딩함.

     @Override

public void run() {

//실행에 필요한 소스 작성

}


 public class Run{ }

public static void main(String[] args){

클래스명 레퍼런스 = new 생성자();

래퍼런스.start();

}

}


2.Runnable 인터페이스를 상속받아 생성

  class 클래스명 implements Runnable { }

//상속 처리 후 run() 메소드 오버라이딩함

@Override

public void run() {

//필요한 소스 작성

}

  public class Run{ }

public statci void main(String[] args){

클래스명 래퍼런스 = new 생성자();

Thread thread = new Thread(레퍼런스);

thread.start();

}

}


두 가지 방식의 차이는 단일 상속의 특성 때문이다 스레드를 implements하고 다른것도 상속 받아 쓰고 싶기 때문!!

그리고 우선순위를 설정을 따로 지정할 수 있는데 기본 값은 5이며 값이 높을 수록 더 높은 우선순위를 갖는다.




반응형