Videnskab
 Science >> Videnskab >  >> Kemi

Hvad er et atomomfang?

I programmering beskriver atomicitet udeleligheden af ​​en operation; det vil sige enten er hele operationen fuldført, eller ingen af ​​den. I nogle programmeringssprog, især Ruby og JavaScript, omtales atomicitet som et *atomisk omfang*.

For at forstå atomicitet og atomare omfang skal du overveje følgende, ikke-atomare, sekvens af operationer for at ændre en brugers banksaldo:

1. Læs saldoen fra banken.

2. Træk transaktionsbeløbet fra saldoen.

3. Skriv saldoen tilbage til banken.

For at disse operationer skal lykkes, skal databasen være låst mellem læse og skrive, fordi ellers kan en anden transaktion skrive til databasen mellem disse to operationer. Ydermere, hvis noget går galt under transaktionen (f.eks. går databasen offline under skriveoperationen), skal operationen fejle fuldstændigt, og databasen skal gendannes til den tilstand, den var i, før transaktionen startede.

Med atomicitet opfører rækken af ​​operationer sig som en enkelt operation, eller den mislykkes helt. Det vil sige, at koden til at udføre en given operation er indesluttet i et *atomic scope*, og hvis en operation i sekvensen mislykkes, rulles hele transaktionen tilbage, som om ingen af ​​operationerne i sekvensen nogensinde havde fundet sted.

Et atomisk omfang garanterer:

1. Hvis ingen operation i scopet fejler, sker alle operationerne;

2. Hvis en operation i omfanget mislykkes, forekommer ingen af ​​operationerne; og

3. Hvis en operation begynder at mislykkes, rulles alle operationer, der allerede er foregået, straks tilbage, hvilket genskaber systemet til dets tilstand, før nogen af ​​operationerne begyndte.

Varme artikler