synchronized函数的原子性

aozhi 2010-11-23 09:09:04
比如一个synchronized函数,执行时,中间出了空指针异常。
那么之前正常的处理会不会回滚?
...全文
151 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
aozhi 2010-11-24
  • 打赏
  • 举报
回复
谢谢各位,自己做了个实验,确实不能回滚。
断章取义地理解了synchronized函数具有原子性的说法。
qybao 2010-11-23
  • 打赏
  • 举报
回复
之后出现的异常不影响前面的执行结果,如果想回滚,就自己做,在catch把你删掉的连接再放回去
caofaping 2010-11-23
  • 打赏
  • 举报
回复
既然第二步正常,那就是删除咯,其他的异常又不影响这个。
blazingfire 2010-11-23
  • 打赏
  • 举报
回复
前两步没有问题,取出的连接当然从闲置连接中删除了(这是你第二步的功能),除非删除功能有问题
aozhi 2010-11-23
  • 打赏
  • 举报
回复
详细说明一下吧。
自定义一个连接池类实现Runnable接口。
其中有一个getConnection函数是同步的。
在此函数中前两步是
1 从闲置连接里取出一个连接
2 将该连接从闲置连接里删除
假设这两步运行正常,而后面出了空指针异常,函数结束。
那么,这时该连接池对象中的闲置连接里应该有没有刚才被删除的连接?为什么?
24K純帥 2010-11-23
  • 打赏
  • 举报
回复
回滚不是指的数据库么,这是什么情况

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧