채팅 응용 프로그램을 개발 중입니다. 채팅 메시지를 처리하는 기능이 있습니다. 각 대화방은 고유 단축 코드으로 식별됩니다. 이제는 하나의 shortcode에 대한 메시지가 처리 될 때 다른 shortcodes에 대한 메시지가 계속 수행되어야하는 동안 동일한 shortcode에 대한 다른 메시지가 대기해야합니다.Java 동기화 문제 - 여러 채팅방 응용 프로그램 채팅
같은 짧은 코드에 대한 메시지가 병렬로 처리되므로 코드의 평화를 고려해보십시오. 문제는 무엇입니까? 난 그냥 볼 수
private HashMap<String, Object> locks = new HashMap<String, Object>();
public void handleShortCode(String shortcode,String message,String from)
{
Object lock = null;
lock = locks.get(shortcode);
if (lock == null)
{
locks.put(shortcode, lock = new Object());
}
synchronized (lock)
{
System.out.println("Handling shortcode:" + shortcode);
// processing
System.out.println("Successfully handled shortcode:" + shortcode + " ......");
}
}
감사합니다. 효율성은 현재 문제가 아닙니다. 해결책이 내 용도로 제공됩니다. 다시 한 번 감사드립니다. –