我正在尝试创建一个简单的基于 Java Swing 的应用程序,该应用程序手动控制两个线程,这两个线程都试图不断增加一个整数值。应用程序应该能够“启动”和“停止”任一线程(两个线程同时递增值)并将任一线程置于临界区(仅允许一个线程递增值)。
这是我所拥有的屏幕截图,以便您更好地理解我的目标:
https://i.imgur.com/sQueUD7.png
我创建了一个“Incrementor”类来完成递增 int 值的工作,但是如果我尝试将 synchronized 关键字添加到 increment() 方法,我不会得到我想要的结果。
private void increment() {
while (Thread.currentThread().isAlive()) {
if (Thread.currentThread().getName().equals("Thread 1")) {
if (t1Stop.isEnabled()) {
value++;
t1TextField.setText("Thread 1 has incremented value by 1. Current value = " + value + "\n");
}
} else if (Thread.currentThread().getName().equals("Thread 2")) {
if (t2Stop.isEnabled()) {
value++;
t2TextField.setText("Thread 2 has incremented value by 1. Current value = " + value + "\n");
}
}
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
关于如何进行的任何建议?
我希望我已经明确了我在寻找什么,如果没有,请告诉我,我会更新这篇文章。
大话西游666
人到中年有点甜
SMILET
随时随地看视频慕课网APP
相关分类