TheOldDriver
8/7/2017 - 4:43 AM

springMVC事务与并发

springMVC事务与并发

java 中多线程开发相关

案例详情:

  1. service中,调用同步方法,该同步方法作用类似于Orcal中的序列号
  2. service被spring的事务管理,传播属性默认required
  3. 当多线程访问时,读取同步方法中数据,出现不同步现象,即每次获取的序列号相同

当多个线程调用service中的一个同步方法,该同步方法会出现不同步情况.
service被spring事务管理

  • 原因:

  • 由于在相关的XML中配置了spring的事物,该service被spring的事务管理,mysql默 认的事物传播属性是required,所以,如果在该方法中调用其他方法,
    其他方法与servic共用一个事务

  • 方法被事务管理,当多个线程同时调用时,如果同步方法中的事务没有提交, 线程就有可能
    读到未提交事务的数据,从而出现程序异常