【问题标题】:Mutiplethread in JavaJava中的多线程
【发布时间】:2017-03-23 03:02:15
【问题描述】:

我有一个面试问题!问题是“现在,您的数据库(商店的数据库)中只有一个产品,但有 2 个不同的请求购买该产品。您对这个问题有什么想法吗?”。我认为这个问题是关于 Mutilthread(在 JAVA 中)或 Transaction(在数据库中)。谁能给我一个简单的例子来处理它?

对不起,我的英语不好,非常感谢!

【问题讨论】:

  • 理想情况下,这将由您的数据库而不是您的应用程序来处理。数据库应在更新期间锁定记录。 MySql does it automatically.
  • 我也这么认为,但你能给我举个例子吗?
  • 如果你使用 MySql,你不应该做任何与平常不同的事情。您是在问如何在 SQL 中编写UPDATE 语句?
  • 不,我能做到!但是 Oracle 或 SQL Server 等不同的数据库呢?
  • 非常感谢,我的朋友!

标签: java multithreading transactions


【解决方案1】:

您可以使用如下 SQL:

update stock = stock - 1 where productId = prodcutId and stock - 1 >= 0;

当这条SQL被执行时,它会返回更新号。如果返回值 > 0,则执行成功,否则执行失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2014-06-13
    相关资源
    最近更新 更多