我怎样才能最有效地浏览12,000个IP地址的数据库并ping所有套接字? 目前我的工作方式如下:
我目前的解决方案是有效的,只需要很长时间就可以通过数据库一次。我试图找到一种方法来快速通过数据库;但是,我不知道从哪里开始。感谢任何帮助,谢谢!
编辑:我打开一个套接字并发送一个TCP数据包,然后存储信息。
答案 0 :(得分:2)
尝试使用像netty(NIO)这样的东西。您可以在一个线程中将您的请求分散到所有IP(无论出于何种原因),并等待另一个线程中的返回。您当前的方法使用线程来管理所有远程主机的异步答案,这似乎没问题并且可以正常工作,但是产生线程只是为了等待并不是最佳选择。更好地打开大量连接,发送数据包,等待结果并让操作系统管理等待。
如果要执行不可预测的时间的并发计算,请仅使用多个线程。如果您有明确定义的任务,比如打开大量套接字,发送数据和等待响应,请在java中使用NIO框架(顺便说一句,通常单个线程就足够了)。