spring +hibernate+struts2整合后,假设在我的DaoImpl类中有如下代码
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(final Session session)
throws HibernateException, SQLException {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SQLQuery query = session.createSQLQuery(sql);
query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
return query.list();
}
});
return list;
该代码外层有事物控制,当我执行到 Thread.sleep(10000)时,又有一个线程调用该方法,
1.第二次请求必须等到第一次请求处理结束才能进入该方法吗?
2.如果两次请求同时进入该方法,那么该方法中的session是同一个吗?
------解决思路----------------------
楼主既然说了是用了spring ,那么这个类应该是单例多线程,所以执行这个方法时两个线程是没有半毛钱的关系的,只有在处理全局变量时才会有线程的安全问题。同理,spring会为每个线程绑定一个session所以两个线程的session也毫不相关
------解决思路----------------------
同步是指多线程对共享资源的使用策略,事务是指数据库操作,两个不一样哦。
------解决思路----------------------
好像说错了, 如果是最高的事务隔离级别, 读的时候也会锁表, 不然怎么防止脏读不可重复读这些呢? 记不清楚了,大概这样
