我围绕数据库查询编写了一个包装器,需要从不同的线程访问它。因此,我的应用程序只创建了该助手类的一个实例,并通过 getter 将其返回。
DbConnection dbc = app.getDatabaseConnection();
synchronized (dbc) {
dbc.doSomething();
}
这段代码安全吗?如此处所述,尽管在局部变量上同步,但它应该可以工作。只要保证对象实例相同,这是否正确?
使所有受影响的 DbConnection 实例方法同步是一种更好的方法吗?