Java.lang.AutoCloseable的close()方法的Java文档说
注意,与Closeable的close()
方法不同,此close()
方法不要求是幂等的。换句话说,多次调用此close方法可能会产生一些明显的副作用,这与closeable#close()
不同,如果多次调用该方法,则要求该方法无效。但是,强烈鼓励该接口的实现者使其闭式方法是幂等的。
他们所说的幂等方法是什么意思,两次调用这个close()
方法有什么副作用?
既然interfacecloseable
扩展了autocloseable
,为什么在关闭closeable
接口时看不到副作用呢?
幂等意味着可以多次应用该操作,但一次调用的结果状态与多次调用的结果状态将无法区分。简而言之,多次调用该方法是安全的。实际上,第二次和第三次(以此类推)调用对程序的状态没有明显的影响。
所以如果你关闭这个对象一次,它就关闭了,你就没有足够的信息来知道它是不是幂等的。但是,如果您关闭它两次,并且第一次关闭,但是第二次抛出异常,那么它显然不是幂等的。另一方面,如果你关闭它一次,关闭它两次,第二次关闭导致项目以相同的方式保持关闭(也许它是一个noop),那么它是幂等的。
使幂等可闭合
的一种技术可以是:
public class Example implements Closeable {
private boolean closed;
public Example() {
closed = false;
}
public void close() {
if (!isClosed()) {
closed = true;
}
}
public boolean isClosed() {
return closed;
}
}
现在很明显,如果close()
被调用一次或多次,则通过isclose()
返回的所有状态都将永远返回true。因此,方法close()
被认为是幂等的。
问题内容: java.lang.AutoCloseable的close()方法的Java文档说 请注意,与Closeable方法不同,此方法不需要是 幂等的 。换句话说,多次调用此close方法可能会产生一些可见的副作用, 这与不止一次调用而没有效果的情况不同。但是,强烈建议此接口的实现者使其封闭方法成为幂等。 __ 幂等 方法是什么 意思,两次调用此方法有什么副作用? 而且由于接口扩展,为什么在
我正在读一本关于JPA和EJB的书,上面有一行写着: “单例会话bean可以使用容器管理或bean管理的并发。默认为容器管理,对应于所有业务方法上的写锁。所有业务方法调用都是序列化的,因此在任何给定时间只有一个客户端可以访问bean。同步过程的实际实现由供应商提供。”-具体的。" 序列化方法调用意味着什么?为什么保证在任何给定时间只有一个客户机可以访问bean?
我刚刚浏览了一些代码,我看到了以下方法
我有一个写文件的方法,它可能有点慢。因此,我这样做是为了避免阻止其他操作: 然而,直到在a之后执行B之后,仍然需要一段时间,我想知道是否应该这样做: 或者,换句话说,调用一个内部有线程的方法是否意味着等待该方法结束,从而等待线程结束? 只是为了澄清一些事情:我想知道两个选项是否相同,或者在第一个选项中,线程是否应该完成以启动B指令。
那么当我使用调用异步方法时会发生什么呢?整个方法的操作会以同步的方式完成吗?例如,如上面所示,我在中有三个异步操作;、&,那么它们是否会以同步方式执行,因为我使用.wait()调用ScanAsync方法?
问题内容: 我从未见过这样的代码: 一样吗? 编辑 如果该类是继承的,它指向哪个类? 问题答案: 指向其编写所在的类。 因此,如果您的getInstance方法位于类名中,则以下行: 将做与: 编辑:评论后,还有更多信息。 如果您有两个相互扩展的类,则有两种情况: 在子类中定义 在父类中定义 第一种情况看起来像这样(在此示例中,我已经删除了所有不必要的代码-您必须将其重新添加来获得单例行为)*: