我有一个服务器,它根据不同客户端的人工时间戳接收来自不同客户端的请求。每个客户端的时间戳是使用以下函数生成的:
public synchronized static long timestamp()
{
ts = ts+1;
return ts;
}
该函数存在于每个客户端本地,并在向服务器发送消息时被调用。服务器有一个请求队列,它基本上是一个ArrayBlockingQueue。它保存从每个客户端收到的请求。
客户端发送其ID和更新的时间戳(ts)。有什么方法可以根据客户端发送的时间戳对服务器端队列中的请求进行排序吗?
任何帮助将不胜感激。谢谢。
最佳答案
我不明白你为什么要使用队列。队列是一种 FIFO 结构,不需要排序。您应该坚持使用队列并希望请求以正确的顺序存储,或者使用不同的数据结构。
使用 List<Object> objList = Collections.synchronizedList(new ArrayList<Object>());
怎么样? ?这个结构可以很容易地排序!
关于java - 根据时间戳对来自不同客户端的请求进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19441181/