数据库事务 ACID 属性中 A 的原子性告诉我们,在数据库上进行的每个事务都像二进制数字系统,0 或 1,全有或全无。
是否可以在 Java 或 C# 或任何其他通用语言等编程语言中实现相同的目标?例如
public static Ticket GetTicket(string filePath) {
counter++;
Application app = new Application(filePath);
.
.
.
也许,我举了一个不好的例子,但我相信这应该足以给出一个想法。现在,想象一下我正在创建 Application
的行对象抛出异常,然后应用程序的执行将停止,并且静态变量counter
的状态已经发生突变并且系统状态发生变化。有没有办法防止在抛出异常之前执行的语句造成损害?
最佳答案
您正在考虑software transactional memory ,它有 Java 和 C# 的库实现
关于c# - 有没有办法在C#、Java等OOP语言中实现原子性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17930584/