Updated Concurrency (markdown)

Bibo-Joshi 2022-04-26 13:19:26 +02:00
parent 5dc3e74639
commit 883ef1dbca

@ -182,10 +182,10 @@ Hence, the following may occur:
1. *Task AB* executes `bank.write_account(source)` and updates *Account A* with *-$10* 1. *Task AB* executes `bank.write_account(source)` and updates *Account A* with *-$10*
2. Before updating *Account B*, *Task AB* sends two messages and during that time, the event loop continues *Task BA* 2. Before updating *Account B*, *Task AB* sends two messages and during that time, the event loop continues *Task BA*
3*Task BA* executes `bank.write_account(source)` and updates *Account B* with *-$100* 3 *Task BA* executes `bank.write_account(source)` and updates *Account B* with *-$100*
3. Before updating *Account B*, *Task AB* sends two messages and during that time, the event loop continues *Task AB* 3. Before updating *Account A*, *Task BA* sends two messages and during that time, the event loop continues *Task AB*
5. *Task AB* executes `bank.write_account(target)` and updates *Account B* with *+$100* 5. *Task AB* executes `bank.write_account(target)` and updates *Account B* with *+$100*
6. When *Task AB* is resumed again, it executes `bank.write_account(target)` and updates *Account B* with *+$10* 6. When *Task BA* is resumed again, it executes `bank.write_account(target)` and updates *Account A* with *+$10*
In the end, *Account A* is at *+$100* and *Account B* is at *+$10*. In the end, *Account A* is at *+$100* and *Account B* is at *+$10*.
Of course, this won't happen very often. Of course, this won't happen very often.