【发布时间】:2013-02-09 15:26:38
【问题描述】:
我怎样才能最有效地浏览一个包含 12,000 个 IP 地址的数据库,然后用它们 ping 打开一个套接字? 目前我的工作是这样的:
- 获取列表中的所有 IP
- 为每个 IP 打开一个新线程,该线程打开一个与服务器的套接字并接收来自它的数据包。
- 在新线程上,根据 IP 在线的天气以及打开套接字时返回的内容更新信息。
我当前的解决方案有效,只需很长时间才能通过数据库一次。我正在尝试找到一种非常快速地通过数据库的方法;但是,我不知道从哪里开始。任何帮助表示赞赏,谢谢!
编辑:我打开一个套接字并发送一个 TCP 数据包,然后存储信息。
【问题讨论】:
-
12k 线程?可能不是一个好主意。我会使用固定的工作池。
-
如果您使用 UDP 并将所有内容保持在同一个线程上?
-
明确一点,ICMP ping 还是什么? ICMP 没有套接字的概念。
-
也许这有点帮助,虽然它不是多线程的:stackoverflow.com/questions/3345857/…
-
ping 12,000 个地址的速度是有限制的,这不是基于数据库的限制。说话需要时间。
标签: java mysql multithreading concurrency