멀티스레딩 3

[Java] 자바 고유락(Intrinsic Lock)이란? (synchronized block)

고유락(Intrinsic Lock) Java에서 고유락(intrinsic lock)은 monitor lock 으로 불리기도 하며, 멀티스레드 환경에서 동기화를 달성하기 위해 사용되는 내부적인 잠금 매커니즘이다. 고유락은 객체당 단 하나만 부여되며, synchronized 키워드를 이용하여 여러 스레드를 동기화 시킬 수 있다. 사용예시는 다음과 같다. public static int counter = 0; // 공유자원 public synchronized void increment(){ // 고유락 counter++; } public static void process(){ Thread t1 = new Thread(new Runnable(){ @Override public void run(){ for(in..

[Java] 스레드와 메모리구조 그리고 프로세스(Process)의 구조

메모리의 종류 스택메모리 (Stack Memory) Each JVM thread has a private Java virtual machine stack, created at the same time as the thread. A JVM stack stores frames, also called “stack frames”. A JVM stack is analogous to the stack of a conventional language such as C 각각의 JVM 스레드는 만들어짐과 동시에 JVM스택(Java Virtual Machine Stack ) 이 함께 만들어진다. JVM 스택은 "스택 프레임(Stack Frame)"이라고 하는 프레임들을 저장하며 이는 C언어의 스택 구조와 비슷한 것이다. ..

[Java] Runnable 인터페이스와 Thread 클래스

목차 1. Runnable 인터페이스 2. Thread 클래스 3. 시스템 로드에 따른 JVM의 자동 스레드 관리 자바는 기본적으로 싱글스레드 환경으로 실행된다. 메인 메서드(main method)가 포함된 클래스의 main 스레드가 실행되며, 이는 싱글스레드에서 코드를 순차적으로 실행한다. 만약 멀티 스레드 환경으로 실행하고 싶은 경우 Runnable 인터페이스나 Thread 클래스를 사용한다. 하지만 일부 자바 라이브러리 및 프레임워크 내부에서는 자동으로 멀티스레딩을 사용하여 작업을 실행하기도 한다(Stream API , 스프링 etc) 1.Runnable 인터페이스 The Runnable interface should be implemented by any class whose instances a..