我在Web服务中有一个方法,它执行一些数据库插入。我想要对该方法的单一访问,这就是为什么我将一个方法设置为同步的原因。但是,当同时对此方法进行多次调用时,同步选项不起作用。该方法的结构如下
public synchronized void display() {
//DataBase updations and Transactions.
}有没有人能提出任何解决方案来避免这个问题。
发布于 2012-10-19 19:24:21
问题不在于该方法,而在于包含该方法的代码的多个实例。
发布于 2012-10-19 19:25:34
如何确定同步不起作用?您知道同步是在对象级别上工作的,所以如果方法在servlet中,并且servlet容器创建了该servlet的多个实例,那么您就不走运了--每个servlet实例都可以同时运行“同步”方法。
另外,为什么要在代码中序列化DB操作-任何DB都完全能够做到这一点,cf。事务性和ACID原则。
干杯,
发布于 2012-10-19 20:20:19
你能试着跟踪一下吗-
https://stackoverflow.com/questions/12973179
复制相似问题