所以继承人我当前的java实现:
- 使用线程从 UDP 套接字接收 UDP 包,将包放入非阻塞队列。
- 300 个线程中的一个读取此非阻塞队列并将此数据包作为对连接到 TCP 主机/端口的 Socket 的请求进行处理。
- 等待响应并将其返回给 UDP 套接字。
这部分一切正常,但是从高负载下 TCP 套接字部分的分析中,我发现在随机情况下,TCP 套接字部分可能需要大约 2-5 秒才能完成。通常这部分需要 2-3 毫秒。我的问题是我只是通过随机线程执行来访问 TCP 套接字,并且我没有线程操作的 FIFO。
有没有办法我可以将“请求”信息加上当前线程引用(我想知道哪个线程来处理“响应”)放入 FIFO 阻塞队列,以确保首先处理最旧的线程以确保 TCP 套接字请求/response 操作需要最少的时间。