Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查类的特定实例是否在java中运行?_Java_Sockets_Network Programming_Long Running Processes - Fatal编程技术网

如何检查类的特定实例是否在java中运行?

如何检查类的特定实例是否在java中运行?,java,sockets,network-programming,long-running-processes,Java,Sockets,Network Programming,Long Running Processes,我有一个类,它将从套接字获取数据。我应该根据几个条件创建这个类的5个实例。我如何检查这个类的某个特定瞬间是否正在运行,以其他方式创建缺少的特定实例? 这是一些代码剪贴: public void checkReachabilityOfHosts(){ String[] host = {"192.168.30.190", "", "", "", "" }; for (String h : host) { if (h.length() > 0) {

我有一个类,它将从套接字获取数据。我应该根据几个条件创建这个类的5个实例。我如何检查这个类的某个特定瞬间是否正在运行,以其他方式创建缺少的特定实例? 这是一些代码剪贴:

public void checkReachabilityOfHosts(){

    String[] host = {"192.168.30.190", "", "", "", "" };

    for (String h : host) {
        if (h.length() > 0) {
            if (isHostReachable(h)) {
                DeviceByteReader deviceByteReader = new DeviceByteReader(h, 3001);
                deviceByteReader.setUpConnection();
                deviceByteReader.getSMessage();
                deviceByteReader.tearDownConnection();
            } else {
                return;
            }
        }else {
            return;
        }
    }
}

您可以修改类并向其添加特殊id字段。该ID将生成到类构造函数中,您可以始终标识实例。要生成ID,请使用时间戳(以毫秒为单位)、随机数或静态实例计数器,或者,如果要在全球范围内创建真正唯一的ID,请使用
UUID.randomuid()

另一种解决方案是只使用
System.identityHashCode(obj)
。这在JVM当前实例中的所有对象中都是唯一的。

使用:为每个实例提供一个常量键(例如IP地址)


工厂有一个缓存,它使用该键查找现有实例。如果缓存中没有实例,请创建一个新实例。

谢谢,Aaron。我已经把句子改好了。