java - 根据时间戳对来自不同客户端的请求进行排序

标签 java multithreading sockets

我有一个服务器,它根据不同客户端的人工时间戳接收来自不同客户端的请求。每个客户端的时间戳是使用以下函数生成的:

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/

相关文章:

java - 获取文件的最后修改日期而不是 Java 中的最后创建日期

java - 多处理器编程类(class)反馈

c# - 不使用锁以原子方式更改两个数字

Python - 具有多个数组的多线程,将参数传递给函数

c++ - `std::sort()` 是否使用线程来提高其性能?

java - 在 readLine() 之后使用 readLong() 进行套接字通信

python - PyQt 中的服务器-客户端连接

java - 错误 : Missing return statement in Java

c++ - 从 TArray<uint8> 中提取 float32

java - 如何从azure函数java中的POST请求中提取数据