공부 흔적남기기

JAVA 자바 프로세스와 쓰레드 본문

프로그래밍 언어/Java

JAVA 자바 프로세스와 쓰레드

65살까지 코딩 2023. 5. 16. 21:36
728x90
반응형

프로세스란?

프로세스는 어플리케이션을 실행시키면 생기는 것으로, OS로 부터 필요한 자원을 할당 받아 프로세스가 된다.
프로세스는 OS로 부터 할당 받은 자원을 이용해 쓰레드를 통해 어플리케이션을 동작시킨다.

즉 모든 프로세스는 하나이상의 쓰레드가 존재하며 쓰레드가 두개 이상인 것을 멀티쓰레드라고 한다.

 

쓰레드란?

위에서 언급했다시피 프로세스 내부에서 실제로 어플리케이션 행위를 하는 것이 쓰레드이다.

멀티쓰레드를 사용하게 되면 CPU사용률 향상, 자원 효율성 향상, 사용자의 응답성 향상 등 많은 장점이 있지만 교착상태, 동기화 등 문제가 생길 수 있기 때문에 주의가 필요하다. 

 

 

package spring.advanced;

public class MyRunnableThread {
    Runnable myRunnable = new MyRunnable();
    
    Thread myThread = new MyThread();
    
    public void start(){
        myThread.start();
        Thread myRunnableThread = new Thread(myRunnable);
        myRunnableThread.start();
    }
}

class MyRunnable implements Runnable{

    @Override
    public void run() {
        for(int i =0; i<5; i++){
            System.out.println(Thread.currentThread().getName());
        }
    }
}

class MyThread extends Thread {
    @Override
    public void run() {
        for(int i =0; i<5; i++){
            System.out.println(getName());
        }
    }
}

다음과 같이 자바에서 쓰레드를 생성할 수 있는데 interface를 사용하면 더 객체지향적인 코드를 작성할 수 있기 때문에 Runnbable 을 사용하는 것이 일반적이다.

 

thread를 start한다고해서 바로 시작되는 것이 아니고 대기상태에 있다 자신의 순서가 되면 쓰레드를 시작하게 된다. 각 쓰레드는 단 한번만 실행가능하며 다시 실행시키기 위해선 새롭게 객체를 할당해서 실행해야한다.

728x90
반응형