1.线程不安全:
两个方面:
1.首先由于JDBC的Connection对象本身是线程不安全的,而session对象中包含了connection对象,所以线程不安全。
2.由于一级缓存是session级别的,所以如果多个线程同时使用session,当线程A进行插入操作的过程,线程B进行查询并缓存了数据,就会出现一级缓存与数据库数据不一致的问题。所以就出现多线程缓存数据紊乱,这说明线程不安全。
2.如何理解不能将sqlsession放在类的静态字段、对象字段或任何类型的管理范围中使用:
静态字段是什么:
2.对象字段:
假设两个线程分别访问同一对象中不同的字段,逻辑上它们并没有共享内容。然而,如果这两个字段恰好在同一个缓存行中,那么对这些字段的写操作会导致缓存行的写回,也就造成了实质上的共享。这就是对象字段的虚共享问题(false sharing)。
3.httpsession管理范围: