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



我有一个类,将从套接字获取数据。我应该根据几个条件创建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;
        }
    }
}

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

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

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

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

相关内容

  • 没有找到相关文章