작성
·
399
2
ConcurrentHashMap 이야기를 해주실 때 좀 궁금해서 찾아보며 몇 가지 궁금증이 생겨서 질문드립니다.
1.일반적으로 HashMap은 멀티쓰레드환경에서 사용하면 안 된다고 하는데, 이것은 '전역변수일 때만' 적용되는 개념이 맞나요?
예를들어 웹개발시 비지니스 로직 메소드(itemSave 등) 에서 new HashMap 등으로 선언 후 값을 넣어 mybatis insert 등을 한다고 할 때, 그냥 HashMap을 사용하잖아요? 이 때는 멀티쓰레드 환경이더라도, 메소드 호출시 스택에 쌓이고 인스턴스가 따로 생성(new HashMap)되니 동시성접근관련 고민을 할 필요가 없는건거죠?
2.store 전역변수를 멀티쓰레드 환경에서 ConcurrentHashMap으로 선언해야한다는 것은 쓰레드들이 동시 접근시 안의 value값을 덮어쓰거나 바꾸거나 등등 동시적 작업으로 원치않는 결과를 반환할 수 있기 때문인거죠?
감사합니다.