【发布时间】:2013-03-27 20:29:27
【问题描述】:
为了我们开发网络压力测试工具的项目,我们将数据包泛洪到整个子网。我们有一个 Runnable 类,它接受一个端口和广播地址,并在 while(!Thread.currentThread().isInterrupted) 循环中发送一个特定的数据包。然后我们有一个主类,它遍历每个网络接口和每个可能的端口,并将 Runnable 类添加到具有 1000 个线程固定池的 ExecutorService 中。问题是如果 ExecutorService 等待当前 1000 个线程完成处理,它们永远不会因为它们处于 while 循环中。但是,启动每个线程(65536 * 接口数)会占用太多内存。我们正在寻找一种循环遍历线程的方法,以便它们都有机会运行一段时间并节省内存,同时仍保持较高的网络输出。
【问题讨论】:
-
我认为我不想为这项工作做出贡献。
标签: java multithreading networking concurrency