프로세스 및 쓰레드

시바코코개발자·2023년 7월 25일
0

프로그램
실행이 안된 상태.

프로세스
프로그램을 더블 클릭하면 실행되는 프로그램.
운영체제로부터 시스템 자원을 할당받는 작업의 단위.
자바는 운영체제가 바로 실행시켜주지 않고, JVM에 의해 실행되기 때문에 JVM으로부터 시스템 자원을 할당받는다.

쓰레드
프로세스의 처리 경로
처리 경로는 디폴트로 한개이다.
단일 쓰레드의 장점 -> 안정,안전
멀티 스레드를 구현할때에는 스케줄링 작업이 필요하다. -> start 메소드

  • 단일 쓰레드

    처리 경로를 한개만 가지고 있기 때문에 직렬적이다.
    동시에 많은 양을 처리하기 힘들기 때문에 상대적으로 비효율적이다.
    하지만 하나의 작업에 문제가 발생하더라도 다른 작업에는 영향을 끼치지 않는다.
    따라서 안정성이 보장되고 설계시 멀티 쓰레드에 비해 쉽다.


  • 멀티쓰레드

    하나의 프로세스를 동시에 처리하는 것처럼 보이지만 사실은 매우 짧은 단위로 분할해서 차례로 처리한다. 여러개의 처리 경로를 가질 수 있도록 하며, 동시 작업이 가능해진다. 설계하기 굉장히 어려우며, 하나의 쓰레드 문제 발생 시 모든 쓰레드에 문제가 발생하게 된다. JAVA웹 서버가 대표적인 멀티 쓰레드이다. 멀티쓰레드로 설계했다면, 처리량 증가, 효율성 증가, 처리비용 감소의 장점이 있기 때문에 단점을 감수하고 설계하는 편이다.
    단일쓰레드와 멀티쓰레드의 종료시점은 이론적으로 봤을때는 둘다 똑같이 업무가 종료된다.쓰레드에서는 속도를 얘기하면 안됨.
    한번에 얼마나 많은양을 처리할 수 잇는지 처리량을 비교해야함

멀티쓰레드 구현 방법
** 핵심 run()메소드 재정의,구현
메소드를 실행할 수 있는 준비상태.
1. Thread 클래스 상속
run이라는 메소드를 재정의 할 수 있음
2. Runnable 인터페이스 지정
run이라는 메소드를 재정의 할 수 있음

run이라는 메소드를 재정의할 때에 2개의 쓰레드가

0개의 댓글