docs: update monitor & monostate

This commit is contained in:
Ilkka Seppälä
2024-05-26 15:13:29 +03:00
parent 6ff2009f61
commit a0f90fa75e
2 changed files with 0 additions and 8 deletions
-4
View File
@@ -115,10 +115,6 @@ public class Main {
In this example, the `Bank` class is the monitor, and the `transfer` method is the critical section that needs to be executed in a mutually exclusive manner. The `synchronized` keyword in Java is used to implement the Monitor pattern, ensuring that only one thread can execute the `transfer` method at a time.
## Class diagram
![Monitor](./etc/monitor.urm.png "Monitor class diagram")
## Applicability
The Monitor design pattern should be used in situations where you have shared resources that need to be accessed and manipulated by multiple threads or processes concurrently. This pattern is particularly useful in scenarios where synchronization is necessary to prevent race conditions, data corruption, and inconsistent states. Here are some situations where you should consider using the Monitor pattern:
-4
View File
@@ -77,10 +77,6 @@ public class App {
In this example, we create two instances of `LoadBalancer`: `loadBalancer1` and `loadBalancer2`. They share the same state. When we make a request via `loadBalancer1`, the request is served by the first server. When we make a request via `loadBalancer2`, the request is served by the second server, not the first one, because the `nextServerIndex` has been updated by `loadBalancer1`. This demonstrates the Monostate pattern in action.
## Class diagram
![Monostate](./etc/monostate.png "MonoState")
## Applicability
Use the Monostate pattern when