为了账号安全,请及时绑定邮箱和手机立即绑定

Spring中多个线程调用Service中的方法出错

/ 猿问

Spring中多个线程调用Service中的方法出错

海绵宝宝撒 2018-08-26 15:03:00

相关代码

 @Rollback(value = false)    @Test
    public void test() throws Exception {     for (int i = 0; i < 10; 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 回答

?
梵蒂冈之花

在测试类中使用多线程,测试程序运行完,线程就会随之关闭.所以会出现这样的问题.
解决办法是保持测试程序的持续运行,比如sleep一段时间,让线程先运行完毕,或者在程序最后加上 System.in.read() 一直读等待.

查看完整回答
反对 回复 2018-08-27

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信