我正在寻找类似于此语法的内容,即使它不存在。
我想让一个方法作用于一个集合,并且在该方法的整个生命周期中,确保不弄乱该集合。
这样看起来像:
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
块外,别无选择。