关于单例下Dao层的疑问

来源:5-1 课程总结

QQ71

2021-01-28 11:53:01

问题描述:

假设我将CakeBiz改为单例,那当多个用户同时访问CakeController时,就会有多个线程同时访问同一个CakeBiz实例,而一个CakeBiz实例对应一个CakeDao实例,也就是多个线程同时访问一个CakeDao实例,

  1. 这会出现问题吗?

  2. ​如果没有问题,那是多个线程轮流访问数据库还是同时访问数据库呢?


写回答

1回答

好帮手慕小班

2021-01-28

同学你好,1、将对象改为单例,并不会出现线程问题,因为在Mybatis框架中,对象实例化通过openSession方法可以获取到一个SqlSession对象,然后getMapper出来的对象对应是线程安全的,并且此时是只有这个一个服务,单服务情况下直接内存是用synchronized。所以此时是线程安全的。

    ​2、多个线程同时访问,这应该是同时访问数据库,因为这里涉及底层,同学可以暂时先不纠结这个问题。

祝学习愉快!

0

0 学习 · 8016 问题

查看课程

相似问题