チャットアプリを開発しています。チャットメッセージを処理する機能があります。各チャットルームは固有のショートコードで識別されます。ここで、あるショートコードのメッセージが処理されているときに、同じショートコードの別のメッセージを待機し、他のショートコードのメッセージを続行する必要があります。
同じショートコードのメッセージが並行して処理されているため、コードの平和に従うことを検討してください。問題は何ですか。私は問題を推測することはできません
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 + " ......");
}
}