java 创建多个线程,每个线程负责检测一个IP地址是否开机。
时间: 2024-04-29 11:21:04 浏览: 9
下面是一个示例代码:
```java
import java.io.IOException;
import java.net.InetAddress;
public class PingThread implements Runnable {
private String ipAddress;
public PingThread(String ipAddress) {
this.ipAddress = ipAddress;
}
@Override
public void run() {
try {
InetAddress address = InetAddress.getByName(ipAddress);
if (address.isReachable(5000)) {
System.out.println(ipAddress + " is up.");
} else {
System.out.println(ipAddress + " is down.");
}
} catch (IOException e) {
System.out.println("Error while pinging " + ipAddress + ": " + e.getMessage());
}
}
public static void main(String[] args) {
String[] ipAddresses = {"192.168.0.1", "192.168.0.2", "192.168.0.3"};
for (String ipAddress : ipAddresses) {
PingThread pingThread = new PingThread(ipAddress);
Thread thread = new Thread(pingThread);
thread.start();
}
}
}
```
该代码创建了一个 `PingThread` 类,实现了 `Runnable` 接口,并在 `run()` 方法中执行了 IP 地址的检测操作。在 `main()` 方法中,创建了多个 `PingThread` 实例,并通过 `Thread` 类将它们启动,以便同时运行。注意,每个 IP 地址的检测操作都在自己的线程中执行,因此它们是并行的。