4 java concurrency reference volatile
考虑以下代码:
class Foo {
java.util.Timer timer = new java.util.Timer();
void doAction() {
...
timer.schedule(new SomeTimerTask(), 0L);
...
}
void cancelAction() {
timer.cancel();
}
}
Run Code Online (Sandbox Code Playgroud)
从不同的线程调用方法.首先调用方法doAction().
我应该声明timer字段volatile对另一个线程可见吗?
它更好地使用synchronized像方法关键字doAction()和cacelAction()该操纵实例变量的关键状态 timer ..
volatile关键字的行为与您描述的用于将volatile字段反映到每个线程的行为非常相似,但这仅适用于每个单独的操作,而不适用于所有操作.
| 归档时间: |
|
| 查看次数: |
366 次 |
| 最近记录: |