我有一个静态Vector用户,每个用户都有一个或多个帐户,因此对于每个用户都有一个Vector帐户。用户和帐户有一个唯一的 ID。 添加新用户很简单:我有一个静态 vector ,我可以轻松检查最后一个用户的 id,并且可以通过执行 user.getId()+1 获取新用户的新 id。
添加新用户后,添加新帐户会出现问题。帐户 ID 必须是唯一的,因此我必须检查每个用户的帐户 vector 中包含的最大 ID。假设许多进程可以添加/删除用户和帐户,那么同步所有帐户 vector 并安全地添加/删除帐户的最佳方法是什么?
实际上添加一个User如下
public boolean addNewUser(User user)
{
if(user!=null)
{
int id=getNewUserId();
if(id!=-1)
{
user.setId(id);
utenti.add(user);
return false;
}
else
return false;
}
else
return false;
}
private int getNewUserId()
{
User user=utenti.lastElement();
if(user!=null)
return user.getId()+1;
else
return -1;
}
最佳答案
关于 id,我建议使用一个一直递增的长值(无论帐户是否被删除)。
同步会更困难,并且取决于您想要做什么。 一个简单的规则是,如果您有一个列表对象,则每当访问它(读或写)时都使用同步块(synchronized block):
synchronized(myList) {
//update the list, do whatever you like, there is no concurrent modification
}
根据您的具体使用情况,可能有更好的方法,但这应该可行。
关于java - 将许多 vector 同步在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25554774/