我有一台服务器根据人工时间戳接收来自不同客户的请求。使用以下函数生成每个客户端的时间戳:
public synchronized static long timestamp()
{
ts = ts+1;
return ts;
}
此功能在本地存在于每个客户端中,并在向服务器发送消息时调用。服务器有一个请求队列,基本上是 ArrayBlockingQueue 。它保存从每个客户端收到的请求。
客户端发送 ID 和更新的时间戳(ts)。有没有什么办法可以根据客户端发送的时间戳在服务器端的队列中订购请求?
任何帮助将不胜感激。感谢。
答案 0 :(得分:0)
我不明白你为什么要使用队列。队列是一种FIFO结构,不需要排序。您应该坚持使用Queue并希望请求以正确的顺序存储,或者使用不同的数据结构。
如何使用List<Object> objList = Collections.synchronizedList(new ArrayList<Object>());
?这个结构很容易分类!