有没有办法在C#,Java等OOP语言中实现Atomicity?

Nik*_*ale 0 c# java acid atomicity

来自数据库事务的ACID属性中的A的原子性表明在数据库上进行的每个事务都像二进制数系统,0或1,全部或全部.

是否有可能在Java或C#等编程语言或任何其他通用语言中实现相同的功能?例如

public static Ticket GetTicket(string filePath) {
  counter++;
  Application app = new Application(filePath);
  .
  .
  .
Run Code Online (Sandbox Code Playgroud)

可能,我给出了一个不好的例子,但我相信这应该足以给出一个想法.现在,假设我创建Application对象的行抛出异常,那么应用程序的执行将停止,静态变量的状态counter将已经发生变化并且系统状态发生了变化.有没有办法防止在抛出异常之前执行的语句造成损害?

Zim*_*oot 5

您正在考虑软件事务内存,它具有Java和C#中的库实现