Java:锁定以进行编辑和更新

时间:2015-09-04 07:08:55

标签: java multithreading concurrency locking

所以我的问题的主旨是 - 我有一个扩展JPanel的类,它还有许多其他swing / awt组件。它显示来自DB的一些数据。它沿着

的路线做了一些事情
public class DataPanel extends JPanel
{
Lock lock;

public DataPanel()
{
lock = new Reenntractlock();
//init
}
public void update()
{
    if(!lock.trylock())return;
    //do update

    lock.unlock();
}
public void edit()
{
    lock.lock();
    //etc etc
    commit();
}
public void commit()
{
    //etc etc;

    lock.unlock();
}
}

我有一个事件监听器,只要点击一个按钮,就会调用编辑。单击另一个按钮时,它会调用commit。更新方法将由定时器调度程序(Timer类)定期调用

我想要完成的事情

(1)更新和编辑/提交是互斥的。不允许并发更新或编辑/提交。 (2)让更新操作延迟到用户停止编辑/提交

我的问题

(1)这是正确的吗?它会做我打算做的吗?我测试了一下它看起来很好,但我不确定。 (2)有没有更好的方法来实现这个目标

编辑:代码已更新

0 个答案:

没有答案