gpt4 book ai didi

Java - 迭代 IP 地址列表并以 IP 地址作为参数调用线程

转载 作者:行者123 更新时间:2023-11-30 03:02:42 26 4
gpt4 key购买 nike

我对 Java 比较陌生,正在编写一个应用程序来查询 Apache HTTP 服务器的 access_log 文件;有了这个,我想将 IP 地址单独提交(可能通过 Apache HTTPClient 库)到另一台服务器上的另一个 Java 实例(因为 Web 服务器没有启用 FTP)以提取一些日志文件。目前,我已经设法通过修改“tail -f”等效类来满足程序需求,然后操纵该数据来获取我需要执行某些操作的IP地址 - 我什至设法使“tail”类是线程化的,因此它可以处理多个时间段!

话虽如此,我想使用 for 循环来迭代 computerRebootList 字符串数组中的每个条目,并为每个地址创建一个线程来执行更多工作,但我能想到的是这个;

for (String tmpIpAddress : computerRebootList ) {
ComputerIpHandler handler = new ComputerIpHandler();
}

然后创建另一个名为 ComputerIpHandler 的类,如下所示;

public class KioskIpHandler implements Runnable {
static final Logger logger = LogManager.getLogger( ComputerIpHandler.class );

@Override public void run() {
//do some code
}

public static void main(String computerIp) {
Thread mainThread = new Thread(new ComputerIpHandler());
mainThread.start();

try {
logger.info("log some stuff");
mainThread.join();
logger.info("yay it's done");
}
catch (InterruptedException errInterrupted) {
logger.error(errInterrupted.getMessage());
logger.error(errInterrupted.getStackTrace());
}
}
}

我在某处读到有关确保我需要管理资源限制的信息,因此我必须创建最大数量的线程 - 可以说我可以向此类发送 10 个 IP 之类的内容,然后让其余地址“排队”,直到那个人回来了……我只是没有足够的信心或流利程度来概念化这些想法。

编辑:我忽略了我仅限于 Java 1.6,因为这是我们可以在此服务器上使用的 JRE 的最大兼容版本 - 不确定这是否会在某种程度上阻碍这项工作......

有人能指出我正确的方向吗?

最佳答案

检查java API中java.util.concurrent包中的ScheduledThreadPoolExecutor和ScheduledExecutorService类。该包中的这些类和其他一些类将为您管理所有资源。从 1.5 版开始,它们就可以在 java 中使用了

关于Java - 迭代 IP 地址列表并以 IP 地址作为参数调用线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35556760/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com