Thread 2

스레드(Thread)와 프로세스(Process)

소개 스레드 프로세스 내부의 흐름 공유자원(code, data, heap)과 개별자원(stack)이 있음 TCB에 상태정보 저장 프로세스 프로그램 각각 독립된 메모리 영역이 있음(code, data, stack, heap) 서로 간 메모리 영역을 침범할 수 없음 프로세스 당 최소 1개의 스레드가 있음 PCB에 상태정보 저장 멀티 프로세싱 CPU가 여러 개가 존재하여 1개 이상의 프로세스를 동시에 처리하는 것입니다.(병행성) 메모리 침범 문제가 OS 차원에서 해결되어 메모리의 독립성이 보장됩니다. 각 프로세스가 메모리 상에 독립적인 영역을 소유하여 작업량이 많을수록 오버헤드가 발생합니다. Context Switching으로 인하여 성능 저하가 발생합니다. 멀티 스레딩 1개의 프로그램에서 여러 스레드가 각각..

Java의 스레드(Thread) 알아보기

개요 여러 가지 일을 병행하는 멀티태스킹은 프로세스 기반, 스레드 기반으로 구현할 수 있습니다. 프로세스 기반 여러 프로그램이 병행으로 실행되는 것 프로세스가 생성될 때마다 새로운 메모리 영역을 할당받음 프로세스 실행에 필요한 새로운 시스템 자원을 할당받음 스레드 기반 프로그램 내부에서 여러 작업이 병행으로 실행되는 것 프로그램의 프로세스에서 사용하는 자원과 메모리를 공유 스레드를 실행하기 위한 자원만 필요 스레드 == 경량 프로세스 멀티 스레드 환경에서는 모든 스레드가 종료되어야 프로그램이 종료됨 스레드의 목적 멀티 스레드를 구현해야 하는 상황 여러 사용자의 동시 요청 처리 외부 데이터 IO 작업 스레드 활용 스레드 생성 java.lang.Thread 클래스를 상속 Runnable 인터페이스를 구현해서..