我目前正在用 JAVA 开发一个项目,我必须制作一个代理来与服务器交互。
每 50 毫秒,服务器将接收我输出到 System.out 的最后一件事,并通过 System.in 打印流向我发送一组新的行作为“状态”,以分析并将我的下一条消息发送到 System.out。
此外,如果服务器从我那里收到多个输出,它只考虑最近的一个。
..
至于我的问题:
我的程序最初构建了一棵树,然后分析每个叶节点以查看哪个是最佳的,然后等待下一个输入,但我可以递归地进行更深入的树搜索,这将使我的输出“更好”(一次又一次继续返回更好的结果)。
使用这一点,如果服务器接收到多个输出,它只需要最近的一个,我可以执行每个级别,打印我的结果并开始下一个级别。但是我的问题来了...
当我应该接收下一个输入时,我不能陷入一些复杂的算法中,因为我会错过它。所以我想知道当我通过 System.in 收到一些东西时是否有办法取消我正在做的任何其他事情,然后返回到函数的开头并使用新的输入集再次开始搜索(然后冲洗并重复..)
我希望这一切都有意义
谢谢大家