【发布时间】:2017-10-22 04:04:47
【问题描述】:
我试图弄清楚为什么这不是“线程安全的”并且我正在公开绘制空白
public class Counter {
private static int val = 0;
public Counter() {
}
public static void set(int newVal) {
val = newVal;
}
public static void decrement() {
int tmp = val;
try {
Thread.sleep(100L);
} catch (Exception var2) {
;
}
--tmp;
val = tmp;
}
public static boolean depleted() {
return val == 0;
}
}
是不是因为做了很多 Counters 就不能正常工作?例如,一群角色使用 Counter 进行移动。如果一个角色没有动作可以做,那么一个新角色开始做动作。实现 Counter 的所有字符都不允许 Counter 正常工作吗?它与线程安全有什么关系?
【问题讨论】:
-
你似乎不明白什么是线程安全...阅读一下here。
标签: java multithreading thread-safety