두 스레드가 동시에 액세스 할 경우 매개 변수 맵이 다음 코드에서 어떻게 영향을 받는지 설명 할 수 있습니까? 동기화 된 블록 안에 있지 않기 때문에 스레드 안전성 문제에 노출되어 있습니까?동기화 된 블록 및 변수 범위
public void fun(String type, String name, Map<String, Object> parameters) {
parameters.put(Constants.PARM_TYPE, type);
parameters.put(Constants.PARM_NAME, name);
try {
synchronized (launcher) {
launcher.launch(type, bool, parameters);
}
} catch (Exception e) {
logger.error("AHHHHH, the world has ended!",e);
}
}
나는 다음과 같은 살펴 보았다하지만 난 여전히 의문을 제기하고 있습니다 : 그런 다음 같은 키를 여러 번 삽입하면 여러 스레드를 가정 Synchronized and the scope of visibility
예, 맵이 스레드로부터 안전하지 않으면 모든 종류의 불량 사항이 발생할 수 있습니다. – jtahlborn
필요한 것은 BlockingMap 구현입니다. – alexg
@alexg 무엇이'BlockingMap'입니까? 'ConcurrentMap'을 의미 했습니까? –