2024-01-28

032 Volatile

January 28, 2024
2024-01-28
parallel, java

강의 메모 - volatile # 개요 # volatile 은 변수의 가시성과 연산의 순서를 제어하기 위해 사용하는 키워드로서 스레드 간의 데이터 일관성과 가시성을 보장하는 역할을 한다 가시성 보장 : 모든 쓰레드가 동일한 값을 보는것 CPU 캐시 메모리와 메인 메모리 # 현대 컴퓨터는 거의 대부분 2개 이상의 CPU가 장착되어 있으며 각 코어에는 레지스터와 캐시메모리가 존재한다 CPU 캐시 메모리는 CPU 레지스터와 메인 메모리 사이에서 데이터 흐름을 최적화하고 성능을 향상시키기 위해 사용되는 고속 메모리이다 CPU 는 값을 읽어올 때 우선 캐시에 해당 값이 있는지 확인하고 없는 경우에만 메인 메모리에서 읽어오는 특성을 가진다 CPU 가 데이터 처리를 위해 메인 메모리로 접근 할 때 다음과 같은 순서로 진행한다 ...

033 Deadlock

January 28, 2024
2024-01-28
parallel, java

강의 메모 - Deadlock - 교착상태 - 1,2 # 개요 # DeadLock(교착상태) 이란 프로세스나 스레드들이 서로가 소유하고 있는 자원을 기다리며 무한히 대기하고 있는 상태를 말한다 교착상태에서는 아무런 진전도 이루어지지 않아 작업이 진행되지 않는 문제가 발생한다 DeadLock 은 동일한 환경과 코드에서 발생할 수도 있고 발생하지 않을 수도 있다 완전한 해결은 없고, ‘예방’과 ‘최소화’하는 느낌 - 예측이 어려운 상황 데드락 발생 조건 # 데드락은 다음의 네 가지 필요 조건을 동시에 만족할 때 발생한다. ...