멀티스레드 3

멀티스레드(Multi-threading)란?

멀티스레드(Multi-threading)는 하나의 프로세스 내에서 여러 개의 스레드를 실행하는 기술을 의미합니다. 스레드는 프로세스 내에서 실행되는 가장 작은 실행 단위로, 멀티스레드를 활용하면 하나의 프로그램이 동시에 여러 작업을 수행할 수 있습니다.1. 멀티스레드의 개념1.1 스레드(Thread)란?스레드는 운영체제에서 프로세스의 실행 단위를 의미하며, 하나의 프로세스는 여러 개의 스레드를 가질 수 있습니다. 모든 스레드는 같은 프로세스 내에서 메모리를 공유하며 독립적인 실행 흐름을 가집니다.1.2 멀티스레드의 동작 방식멀티스레드는 하나의 프로세스 내에서 여러 개의 작업을 동시에 수행하는 방식입니다. 운영체제는 스케줄러를 통해 CPU 시간을 각 스레드에 분배하며, 이를 통해 병렬 실행이 가능합니다.2..

CS 2025.03.11

자바(JAVA) Synchronized

Java에서 synchronized 키워드는 멀티스레드 환경에서 데이터를 안전하게 공유하고 동기화하기 위해 사용됩니다. 여러 스레드가 동시에 접근할 수 있는 자원(주로 변수나 메서드)에 대한 동시 접근을 제어하여, 데이터 불일치나 경쟁 상태(race condition)를 방지하는 역할을 합니다. Synchronized 키워드의 사용 위치(1) 메서드 선언부에 사용메서드 선언부에 synchronized를 붙이면, 해당 메서드를 호출하는 스레드가 그 메서드를 실행할 때 동기화를 보장합니다.인스턴스 메서드에서 사용: 해당 메서드가 호출될 때마다 인스턴스(객체)에 대한 락이 걸립니다. 여러 스레드가 같은 객체의 메서드를 호출할 때, 하나의 스레드만 메서드를 실행할 수 있도록 보장합니다.클래스 메서드에서 사용: ..

Back_End/Java 2025.02.24

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

[ 프로세스란 무엇인가? ]프로세스는 실행 중인 프로그램을 의미합니다. 운영 체제에서 메모리, CPU와 같은 시스템 자원을 할당받아 독립적으로 실행됩니다. 프로세스는 각자의 메모리 공간을 가지며, 다른 프로세스와 메모리 공간을 공유하지 않습니다.프로세스의 주요 특징독립성: 각 프로세스는 고유의 메모리 영역(코드, 데이터, 힙, 스택)을 가지며, 다른 프로세스와 분리되어 실행됩니다.운영 체제의 관리: 프로세스는 운영 체제에 의해 생성, 관리, 종료됩니다.비용: 프로세스 간 문맥 전환(Context Switching)은 많은 시스템 자원을 소모합니다. 프로세스의 구성 요소Code : 코드 자체를 구성하는 메모리 영역 (프로그램 명령)Data : 전역 변수, 정적 변수, 배열 등 초기화된 ..

CS 2025.01.21