Closed. This question needs to be more focused。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
                        
                        6年前关闭。
                    
                
        

数据库事务的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/

10-12 00:35
查看更多