什麼是原子性,什麼是原子性操做?

舉個例子:事務

A想要從本身的賬戶中轉1000塊錢到B的賬戶裏。那個從A開始轉賬,到轉賬結束的這一個過程,稱之爲一個事務。在這個事務裏,要作以下操做:程序

 1. 從A的賬戶中減去1000塊錢。若是A的賬戶原來有3000塊錢,如今就變成2000塊錢了。

 2. 在B的賬戶里加1000塊錢。若是B的賬戶若是原來有2000塊錢,如今則變成3000塊錢了。

若是在A的賬戶已經減去了1000塊錢的時候,突然發生了意外,好比停電什麼的,致使轉賬事務意外終止了,而此時B的賬戶裏尚未增長1000塊錢。那麼,咱們稱這個操做失敗了,要進行回滾。回滾就是回到事務開始以前的狀態,也就是回到A的賬戶還沒減1000塊的狀態,B的賬戶的原來的狀態。此時A的賬戶仍然有3000塊,B的賬戶仍然有2000塊。

咱們把這種要麼一塊兒成功(A賬戶成功減小1000,同時B賬戶成功增長1000),要麼一塊兒失敗(A賬戶回到原來狀態,B賬戶也回到原來狀態)的操做叫原子性操做。

若是把一個事務可看做是一個程序,它要麼完整的被執行,要麼徹底不執行。這種特性就叫原子性。

相關文章
相關標籤/搜索