【发布时间】:2016-07-20 17:30:38
【问题描述】:
我在我的一个班级上使用了@Transactional 并在多线程环境中使用它?据我了解,它将在线程本地环境中执行并且是线程安全的。
现在我的用例是从帐户中提取金额?如果读取的账户金额是脏的,会不会有透支的情况?我不确定现在这样是否安全,或者我需要同步我的功能。
任何建议都会受到高度重视。
【问题讨论】:
-
Spring 使用底层数据库实现来处理事务,因此它们与底层数据库一样是线程安全的。
-
事务隔离与线程安全是不同的问题。
-
内森是对的。查看数据库和数据库访问 Java API(JPA、JDBC 等)提供的锁定机制
-
@Nathan,David 如何在 JPA 或 JDBC 中实现事务隔离任何指针或起点?你能推荐一些好的参考资料吗?
-
@Naresh Kumar 查找更新、乐观锁和悲观锁的选择。它们是满足您需求的不同方式。
标签: java spring multithreading