2

这个幂等原语有正确的名称吗?

public class Flag
{
    public bool IsSet { get; private set; }

    public void Set()
    {
        IsSet = true;
    }
}
4

4 回答 4

3

tripSwitch或者onSwitch怎么样?

添加

闩锁可能几乎就是您要寻找的东西。

于 2013-01-31T10:41:01.080 回答
2

我认为在 ee 中,这是一个 Set Latch,而不是 Set-Reset (SR) Latch。

保险丝是否会是一个需要手动替换其数据库才能重置的持久版本?

于 2013-01-31T10:57:58.560 回答
1

只能从类内部设置的标志将是外部的只读标志。

于 2013-01-31T10:24:47.563 回答
0

如果您假设只使用方法,您可以在 Java 中执行的操作是

class Component {
    private volatile boolean closed = false;

    public boolean isClosed() { return closed; }

    public void close() { closed = true; }
}

该字段是易变的,running或者closed标志通常由不同的线程设置为使用它的线程。

注意:即使您创建一个字段final,您仍然可以使用反射更改值,因为它可以绕过安全模型(假设您的 SecurityManager 允许它,默认情况下它会这样做)

于 2013-01-31T10:29:47.853 回答