java - 在对象的不同实例上同步方法
问题描述
我有一堂课:
class Station {
public void decrement(){
// ...
}
}
它有两个不同的实例:station1和station2。两个不同的线程在station1和station2上调用函数decrement() 。我想同步所有对象和线程。decrement()
根据我的阅读,synchronized
关键字同步单个对象的函数调用,因此在这里不起作用。如何在所有实例之间同步调用Station
?
解决方案
synchronized
而是对象。例子:
class Station {
private final static Object DECREMENT_LOCKER = new Object();
public void decrement(){
synchronized (DECREMENT_LOCKER) {
//do smt
}
}
}
推荐阅读
- javascript - JSON 数据存在 Javascript 问题(Destiny 2 API)
- ruby-on-rails - 来自 Rails GraphQL 的 Doorkeeper 身份验证
- python - Anaconda 虚拟环境 Python 脚本未执行
- github - 如何删除 GitHub 页面子域重定向?
- kubernetes - Redis - 使用集群避免数据丢失(使用 Gossip 协议)
- ios - USDZ Safari 权限
- javascript - Bootstrap 4 Navbar 切换无法隐藏(ruby on rails 应用程序)
- javascript - CSS - 动画整个 ul 而不仅仅是新项目进入时的第一行
- python - 使用服务帐户密钥的 Google Drive Python API 授权
- ruby - 用逗号分割字符串,但不包括括号中的逗号