본문 바로가기

AtomicInteger1

멀티쓰레드환경,동시성제어 | AtomicInteger 활용하기 멀티쓰레드 환경에서 공유 리소스에 대한 동시성 제어가 필요한 예제를 알아본다. sychronized 등을 통한 동시성제어가 아니라 AtomicXXX 클래스(AtomicIntger)를 통해 동시성제어를 구현해본다. 1.멀티쓰레드 환경에서 item 리소스(공유변수)에 동시에 접근할 때 멀티쓰레드환경에서 2개 이상의 쓰레드가 item 변수에 동시에 접근하여 증가, 감소를 실행할 때 예제를 통해 상황을 구현한다. increase()를 1000번 실행시키고 decrease()를 1000번 실행시키면 item값은 0이 되어야 한다. 그러나 멀티쓰레드 환경에서는 결과가 다르게 나올 수 있기 때문에 동시성 제어가 필요하다. 일반적으로 synchronized 키워드를 메소드에 붙여주거나 임계영역(Critical Sect.. 2023. 10. 14.