如果一个方法包含在事物中,那么该方法可以视为同步吗? 楼主既然说了是用了spring ,那么这个类应该是单例多线程,所以执行这个方法时两个线程是没有半毛钱的关系的,只有在处理全局变量时才会有线程的安全问题。同理,spring会为每个线程绑定一个session所以两个线程的session也毫不相关 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 取决于事务的隔离级别配置加上事务内是否对数据库进行update操作. 你这里就算该方法配置了最高的隔离级别也不会造作成阻塞, 因为你并没有update数据库, 事务方法本身并不具备同步功能, 同步发生在数据库层面. 举个例子:{ update table a; sleep();}上面这段代码运行在高事务隔离级别内,sleep操作一定要在update 操作后面(数据库事务是在操作表的时候才打开的)如果有个线程f处于上述sleep阶段,那么:任何其它线程对于a表的update操作都将阻塞,而不只是该方法. 因为在sleep的时候, 数据库是锁住a表的. 锁要在线程f sleep之后提交了事务才会释放. 好像说错了, 如果是最高的事务隔离级别, 读的时候也会锁表, 不然怎么防止脏读不可重复读这些呢? 记不清楚了,大概这样谢谢你的回答,但是还有个疑问 如果有方法A{ update table a;sleep();update table b}当我改完a 表进入sleep时,此时如果有另外一个线程也对 a 表进行操作,那么 另外一个线程此时会阻塞,一直等到 方法A执行完毕吗? 好像说错了, 如果是最高的事务隔离级别, 读的时候也会锁表, 不然怎么防止脏读不可重复读这些呢? 记不清楚了,大概这样谢谢你的回答,但是还有个疑问 如果有方法A{ update table a;sleep();update table b}当我改完a 表进入sleep时,此时如果有另外一个线程也对 a 表进行操作,那么 另外一个线程此时会阻塞,一直等到 方法A执行完毕吗?这个是肯定的 鞍山博海LED 一个复杂算法 100分 XML OVER HTTP 怎么运用 开发项目 需要一些什么样的JAR包? 高手请进(高分送): JBuiler如何建立服务器 JSF和Tapestry,您选谁? Spring例子中的Jpetstore有谁看过? spring web应用中,调用bean 急问!jbuider9开发Struts的小问题。 刚安装的jbuilder8需要配置吗?怎么做 Struts部署的时候老一个错误Package zzf extends undefined package struts-default 如何取得JSP页面session值
你这里就算该方法配置了最高的隔离级别也不会造作成阻塞, 因为你并没有update数据库, 事务方法本身并不具备同步功能, 同步发生在数据库层面.
举个例子:
{
update table a;
sleep();
}
上面这段代码运行在高事务隔离级别内,sleep操作一定要在update 操作后面(数据库事务是在操作表的时候才打开的)
如果有个线程f处于上述sleep阶段,那么:
任何其它线程对于a表的update操作都将阻塞,而不只是该方法. 因为在sleep的时候, 数据库是锁住a表的. 锁要在线程f sleep之后提交了事务才会释放.
谢谢你的回答,但是还有个疑问
如果有方法A
{
update table a;
sleep();
update table b
}
当我改完a 表进入sleep时,此时如果有另外一个线程也对 a 表进行操作,那么 另外一个线程此时会阻塞,一直等到 方法A执行完毕吗?
谢谢你的回答,但是还有个疑问
如果有方法A
{
update table a;
sleep();
update table b
}
当我改完a 表进入sleep时,此时如果有另外一个线程也对 a 表进行操作,那么 另外一个线程此时会阻塞,一直等到 方法A执行完毕吗?
这个是肯定的