如何处理股票市场应用程序中的数据库并发?

时间:2013-11-20 21:09:41

标签: java mysql concurrency

我正在为一个简单的股票市场开发一个Java应用程序,人们可以买卖股票。我正在考虑的问题是如何处理买/卖并发并确保2个以上的并发买单不会为不同的用户创建重复的股票?

我正在使用MySQL存储所有信息,买卖订单转到特定的表格。

当两个用户为同一股票发出同步和即时买单时,我怎样才能确保他们获得的股票数量不会超过那些可用的股票?

客户端连接到服务器,服务器将请求发送到RMI服务器。 RMI连接到MySQL以存储数据。

2 个答案:

答案 0 :(得分:1)

只要您在每笔交易中使用交易,然后使用任何合理的数据库设计,数据库都不会让这种情况发生。如果两个线程都尝试提交对提供的共享计数的更改,则一个将成功,另一个将失败并显示错误。然后第二个线程只需要重试交易。

答案 1 :(得分:1)

如果是这种情况,则DB旨在处理这种情况。 这是任何RDBMS系统的ACID属性之一,

当一个事务更新值并且仅在提交或回滚时解锁时,记录将被锁定。 第二个事务要么等待,要么返回错误。

如果要处理它,请处理数据库中的锁定以向用户提供自定义消息。

希望这有帮助。