1. Synchronized 키워드 사용하기
synchronized가 적용된 메서드나 블록은 한 시점에 하나의 스레드만 실행할 수 있다.2. 동시성 컬렉션 사용하기
java.util.concurrent 패키지에서 컬렉션들은 내부적으로 동시성을 관리하여, 별도의 외부 동기화 없이도 여러 스레드에서 안전하게 접근할 수 있게 해 준다.HashMap의 동시성 버전으로, 특정 부분의 데이터만 락을 걸어서 동시성을 높이고, 전체 맵을 락하지 않아도 되므로 성능이 향상된다.ArrayList의 동시성 버전으로, 쓰기 작업 발생 시 기존 내용을 복사하여 새로운 복사본에 쓰기 작업을 수행하고 이후 새로운 복사본으로 교체합니다.CAS(Compare And Swap)
멀티스레드 환경에서 원자적 연산을 수행하기 위한 기법 중 하나
변수의 현재 값과 기대하는 값이 일치할 때에만 새로운 값을 설정하는 연산을 수행
이 글이 작성되기까지 도움주신 태곤님, 성환님, 수아님께 감사드립니다.