동시성 문제가 발생 할 수 있습니다. Thread를 특정 기능 및 로직에 의해 반복문 안에서 여러번 생성하고 실행되었을때 데이터 충돌이 일어나 동시성 문제가 발생합니다. 결괏값이 순차적으로 나오지 않는 논리적 문제가 발생하여 쓰레드 안정이 깨지는 상황이 발생합니다. 코드로 예를 들어 보겠습니다. 아래는 간단하게 사용자들이 회사 홈페이지를 조회하면 카운트가 올라가는 코드입니다. 코드를 run 했을 때 스레드로 조회하는 횟수가 100이고 그 횟수를 100번 더 반복하여 10000번의 조회가 나올 것을 예상할 수 있습니다. 하지만 결과는 다음과 같습니다. print되는 숫자들이 동시성이 없으며 순차적이지 않습니다. 동시성 문제는 Java Atomic Type, volatile, synchronized 같..
(Java) Thread와 Thread Local 등을 사용 할 때 발생 할 수 있는 위험 요소와 이에 대한 해결 방안에 대하여 (feat.Atomic Type, volatile, synchronized)
동시성 문제가 발생 할 수 있습니다. Thread를 특정 기능 및 로직에 의해 반복문 안에서 여러번 생성하고 실행되었을때 데이터 충돌이 일어나 동시성 문제가 발생합니다. 결괏값이 순차적으로 나오지 않는 논리적 문제가 발생하여 쓰레드 안정이 깨지는 상황이 발생합니다. 코드로 예를 들어 보겠습니다. 아래는 간단하게 사용자들이 회사 홈페이지를 조회하면 카운트가 올라가는 코드입니다. 코드를 run 했을 때 스레드로 조회하는 횟수가 100이고 그 횟수를 100번 더 반복하여 10000번의 조회가 나올 것을 예상할 수 있습니다. 하지만 결과는 다음과 같습니다. print되는 숫자들이 동시성이 없으며 순차적이지 않습니다. 동시성 문제는 Java Atomic Type, volatile, synchronized 같..
2024.06.11