我正在寻找类似于此语法的内容,即使它不存在。
我想让一个方法作用于一个集合上,并在该方法的整个生命周期中,确保不弄乱该集合。
这样看起来像:
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
块外,别无选择。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句