Language agnostic 如何锁定/解锁资源?

Language agnostic 如何锁定/解锁资源?,language-agnostic,synchronization,locking,Language Agnostic,Synchronization,Locking,本文的前两部分已在中讨论过,在实施之前,我们希望进一步了解有关第三部分的更多信息 第三部分(3分) 了解锁定和解锁一个DListNode而不使用任何现有Java包是很重要的。使用,布尔标志的方法作为表示锁定/解锁状态的LockDListNode的成员,此标志的设置是非原子的。因为,如果我设置flag=true此集合操作可以是字节码级别的多行指令 一旦这个成为实现lock/unlock的瓶颈的澄清得到解决,继承和重写的事情就可以很容易地解决了 我的问题: 您能否建议在DListNode上实现loc

本文的前两部分已在中讨论过,在实施之前,我们希望进一步了解有关第三部分的更多信息

第三部分(3分) 了解
锁定
解锁
一个
DListNode
而不使用任何现有Java包是很重要的。使用,
布尔标志的方法
作为表示锁定/解锁状态的
LockDListNode
的成员,此标志的设置是非原子的。因为,如果我设置
flag=true此集合操作可以是字节码级别的多行指令

一旦这个成为实现
lock/unlock
的瓶颈的澄清得到解决,继承和重写的事情就可以很容易地解决了

我的问题:

您能否建议在
DListNode
上实现
lock/unlock
功能的方法


注意:此查询与Java知识无关。

新类LockDListNode将扩展DListNode。现在您需要了解继承。DListNode应该有一个delete操作方法,您需要重写该方法,而不是执行任何操作
请参见下面的代码模板:

public class DListNode {
    public DListNode{
    }

    public void delete(){
          // TODO some delete code here
    }
}

public class LockDListNode extends DListNode {
    public LockDListNode{
        super();
    }

    @override
    public void delete(){
        // DO nothing here
    }
}
现在如果你这样做了

DListNode unableToDeleteNode =  new LockDListNode();
unableToDeleteNode.delete();
您创建了LockDListNode的对象并调用delete方法,它将为LockDListNode而不是DListNode调用delete

DListNode unableToDeleteNode =  new LockDListNode();
unableToDeleteNode.delete();