我对如何synchronized
在 Java 中实现块有点困惑。
这是一个示例情况:
public class SlotWheel extends Thread implements ActionListener
{
private int currentTick; // This instance variable is modified in two places
private synchronized void resetCurrentTicks()
{
currentTick = 0;
}
private synchronized void incrementCurrentTicks()
{
++currentTick;
}
public void actionPerformed(ActionEvent e)
{
resetCurrentTicks();
}
}
在程序运行时,用户可能会单击一个按钮,该按钮调用actionPerformed
然后调用resetCurrentTicks
. 同时,正在运行的线程正在调用incrementCurrentTicks
每个循环迭代。
因为我还是 Java 和编程的新手,所以我不确定我的实现是否可以防止currentTick
损坏。
incrementCurrentTicks
我有这种感觉,我的实现只有在运行线程中被调用时才会起作用actionPerformed
,但是因为我currentTick
使用不同的方法进行操作,所以我的实现是错误的。