因此,继承人我目前的Java实现:FIFO队列发送请求,并等待响应
- 使用一个线程从UDP套接字接收UDP包,就把包成非阻塞队列。
- 300个线程之一读取此非阻塞队列,并将此数据包作为对连接到TCP主机/端口的Socket的请求处理。
- 等待响应并将其返回给UDP套接字。
这部分内容一切正常,但是从高负载下TCP套接字部分的分析,我发现在随机的情况下,TCP套接字部分可能需要大约2-5秒才能完成。通常这部分需要2-3毫秒。我的问题是,我只是用随机线程执行命中TCP Socket,并且没有线程操作的FIFO。
有没有一种方法可以将'请求'信息和当前线程引用(我想知道哪个线程处理'响应')放入一个FIFO阻塞队列中,以确保最早处理最早的线程以确保TCP套接字请求/响应操作需要最少的时间。
各个线程是否阻止了TCP操作?还是你安排他们是非阻塞的?如果是这样,怎么样? –
为什么?你怎么知道这样排序会改变TCP响应时间?当UDP本身无序时,为什么顺序很重要? – EJP
我希望你的盒子里有300个核心。 –