在时间案例方案中加入的用户数量?

时间:2014-12-16 09:40:22

标签: java

我需要了解不同用户案例场景下的相同操作。

对于Ex:有一个房间在那里。用户不断地进入房间并且及时离开房间。还有一个案例是用户没有尝试加入同一个房间。

如何处理java中的上述示例案例,如同步或其他任何内容。请建议我处理此问题的最佳案例?

我做了一个样本。请看下面的示例代码一次:

public class Sample{

    private ArrayList<String> players = new ArrayList<String>();
    public synchronized void joinRoom(String name)
    {
        players.add(name);
        //Do something
    }

    public synchronized void leaveRoom(String name)
    {
        for(String uName : players){
            if(uName.equals(name))
            {
                players.remove(uName);//Here is there any possibility to get concurrent modification exception.if gets how to solve
            }
        }

       //Do something
    }
}

但是我不知道案件的处理方式与使用上面的示例代码有关。请告诉我哪一个最适合处理这种情况?

先谢谢。

1 个答案:

答案 0 :(得分:0)

你可以使用ConcurrentSkipListSet。它将为您处理所有同步并更有效地执行.ConcurrentSkipListSet允许并发读取和写入。

关于并发修改异常,请使用迭代器:

Iterator<String>  iter = players.iterator();
 while(iter.hasNext()){
   if(iter.next().equals(name)){
    iter.remove();
    break;
  }
}