账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Spring中多个线程调用Service中的方法出错
    24
    0

    service中入库的方法,需要在多线程的情况下做测试,然后就开启两个线程循环执行service方法,但是出现了很多问题,有以下几种情况。

    1. 两个线程都执行到一半然后就报错终止,数据库分别有几条数据
    2. 两个线程都只执行一遍,数据库分别有一条数据
    3. 数据库没有数据

    相关代码

     @Rollback(value = false)
        @Test
        public void test() throws Exception {
    //        不开启线程,在主线程中执行没有问题
    //        for (int i = 0; i < 10; i++) {
    //            normal(Thread.currentThread().getId(), i);
    //        }
    
            Thread thread1 = new Thread(new Runnable() {
                @Override
                public void run() {
                    for (int i = 0; i < 10; i++) {
                        normal(Thread.currentThread().getId(), i);
                    }
                }
            });
            Thread thread2 = new Thread(new Runnable() {
                @Override
                public void run() {
                    for (int i = 0; i < 10; i++) {
                        normal(Thread.currentThread().getId(), i);
                    }
                }
            });
    
            thread1.start();
            thread2.start();
    
        }
    
        public void normal(long id, int n) {
            auditLoggingService.insertAuditLogging("修改个人密码成功" + id + "/" + n, 56, 6, 0,
                    BaseConstants.AuditLoggingOperatorType.MODIFY, "修改个人密码", "修改密码", 0, "", "", "无", "", BaseConstants.UserInfo.USER_CAT_INNER, "yangyan", "");
    
        }

    错误信息

    1. 有时候可以成功执行,没有报错信息,但是数据库没有信息
    2. Returning cached instance of singleton bean 'org.springframework.transaction.interceptor.TransactionInter
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部