我正在寻找类似于此语法的东西,即使它不存在。
我想让一个方法作用于一个集合,并且在该方法的生命周期内,确保集合没有被弄乱。
所以它看起来像:
private void synchronized(collectionX) doSomethingWithCollectionX() {
// do something with collection x here, method acquires and releases lock on
// collectionX automatically before and after the method is called
}
但是,恐怕唯一的方法是:
private void doSomethingWithTheCollectionX(List<?> collectionX) {
synchronized(collectionX) {
// do something with collection x here
}
}
这是最好的方法吗?
最佳答案
是的,这是唯一的方式。
private synchronized myMethod() {
// do work
}
相当于:
private myMethod() {
synchronized(this) {
// do work
}
}
因此,如果您想在 this
之外的其他实例上进行同步,您别无选择,只能在方法内声明 synchronized
block 。
关于java - 在 Java 中同步对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27952922/