본문 바로가기

thread3

JAVA의 Thread JAVA의 Thread 자바에서는 여러 스레드를 생성하여 여러 작업들을 병렬적으로 수행할 수 있다. 오늘은 이에 대해 알아보자! Lang.Thread의 주요 메소드 우선 간단하게 스레드와 관련된 메서드를 먼저 보자. 각각은 스레드의 상태를 변화시키는 메서드이다. start() NEW에서 RUNNABLE로 보낸다. run() 스레드 상태가 RUNNING되면, run 메소드에 오버라이딩된 로직을 수행한다 yield() 우선권이 동일한 스레드에게 실행 기회를 양보한다. 해당 스레드는 RUNNING에서 RUNNABLE 상태로 바뀐다. sleep() 현재 실행중인 스레드를 주어진 시간동안 TIMED_WAITING 상태로 빠트린다. join() 다른 스레드와 협동 작업을 할 때 주로 쓴다. 호출되면 BLOCKED .. 2024. 4. 15.
Thread, 스레드 Thread, 스레드 스레드란 프로세스 안에서 실행되는 여러 흐름 단위를 말한다. 스레드를 이용하면 하나의 프로세스 내에서도 병렬적(동시적)으로 처리할 수 있다. 즉, 여러 개의 처리 루틴을 가질 수 있다. 프로세스는 대부분 독립적인 메모리 공간과 자원을 할당 받지만, 그에 비해 스레드는 다른 스레드와 많은 부분을 공유한다. 독립적으로 가지고 있는 부분 program counter(PC) : 하나의 스레드 실행에 있어서 다음으로 실행될 명령어 위치 register set stack 영역 다른 스레드와 공유하는 부분 code 영역, data 영역, heap 영역 OS 자원 Stack만 따로 할당 받는 이유? 스레드는 독립적인 동작을 수행하기 위해 존재한다. 즉, 독립적으로 함수를 호출할 수 있어야 하기 때.. 2024. 4. 15.
프로세스와 스레드, 멀티 프로세스와 멀티 스레드 프로그램 프로그램이란 어떤 작업을 위해 실행할 수 있는 파일이다. 프로세스 프로세스란 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적 개체)를 말한다. 운영체제로부터 시스템 자원을 할당받는 작업의 단위이다. 여기서 시스템 자원이란 다음과 같다. CPU 시간 주소 공간 메모리 공간 : Code, Data, Stack, Heap으로 이루어진 구조 Code 코드 자체를 구성하는 메모리 영역 Data 초기화된 데이터 전역변수, 정적 변수, 배열 Stack 임시 메모리 영역 지역변수, 매개변수, 리턴 값 Heap 동적 할당 시 사용 new(), malloc() 기본적으로 프로세스마다 적어도 하나의 스레드를 가진다. 스레드 스레드란 프로세스 안에서 실행되는 여러 흐름 단위를 말한다. 스레드의 경우에는 St.. 2023. 11. 6.