#Memory Visibility 메모리 가시성 (Memory Visibility) 문제는 멀티 스레드 환경에서 발생하는 특정 스레드에서 변경한 정보가 바로 다른 스레드에 보이지 않는 현상이다.이는 CPU 아키텍쳐 구조로 인해 발생한다. 메인 메모리로부터 직접 데이터를 불러오는 것은 CPU로부터의 거리가 멀리 떨어져 있기에 상대적으로 속도가 느리다. 따라서 CPU는 속도 향상을 위해 CPU 근처에 작은 크기의 캐시 메모리를 배치하여 속도를 향상시키는 구조를 채택한다. 자바 멀티 스레드 환경에서 또한 각 스레드는 고유의 캐시 메모리를 가진다. CPU 아키텍쳐와 동일하게 스레드는 메인 메모리로부터 직접 값을 읽는 대신, 스레드의 캐시 메모리로 값을 복사한 뒤 사용한다. #Memory Visibility E..
Goal1. 데몬 스레드와 사용자 스레드의 차이점에 대해 이해한다.2. 데몬 스레드의 생성 방법에 대해 이해한다.#1 데몬 스레드 & 사용자 스레드자바에서 스레드는 사용자 스레드와 데몬 스레드로 구분한다. 사용자 스레드는 Thread Class 를 상속받거나, Runnable 인터페이스를 구현하는 방식으로 생성한다. [Java] 쓰레드 생성 방법 Thread & Runnable Interface✨Goal1. Thread Class를 상속받아 스레드를 생성하는 방법에 대해 숙지한다.2. Runnable Interface를 구현하여 스레드를 생성하는 방법에 대해 숙지한다. 자바에서 스레드를 생성하는 방법은 Thread 클래스novlog.tistory.com 자바 프로그램은 현재 프로세스 내부에 동작하고 ..
✨Goal1. Thread Class를 상속받아 스레드를 생성하는 방법에 대해 숙지한다.2. Runnable Interface를 구현하여 스레드를 생성하는 방법에 대해 숙지한다. 자바에서 스레드를 생성하는 방법은 Thread 클래스를 상속받는 방식과 Runnable 인터페이스를 구현하는 방식으로 나뉜다. #1 extends ThreadThread 클래스를 상속받아 스레드를 생성한다. * Thread.currentThread().getName() - 현재 실행중인 스레드의 이름을 반환한다.run() 메서드 내부에 스레드가 수행할 동작을 명시하며 외부에서 start() 메서드를 호출하면 스레드 내부의 run() 메서드가 호출된다. public class MyThread extends Thread{ @..