docs: producer-consumer and promise diagrams

This commit is contained in:
Ilkka Seppälä
2025-04-09 21:33:39 +03:00
parent 261da00a1b
commit 3abaa83710
4 changed files with 8 additions and 0 deletions
+4
View File
@@ -36,6 +36,10 @@ Wikipedia says
> Dijkstra wrote about the case: "We consider two processes, which are called the 'producer' and the 'consumer' respectively. The producer is a cyclic process that produces a certain portion of information, that has to be processed by the consumer. The consumer is also a cyclic process that needs to process the next portion of information, as has been produced by the producer. We assume the two processes to be connected for this purpose via a buffer with unbounded capacity."
Sequence diagram
![Producer-Consumer sequence diagram](./etc/producer-consumer-sequence-diagram.png)
## Programmatic Example of Producer-Consumer Pattern in Java
Consider a manufacturing process of item, the producer will need to pause the production when manufacturing pipeline is full and the consumer will need to pause the consumption of item when the manufacturing pipeline is empty. We can separate the process of production and consumption which work together and pause at separate times.
Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

+4
View File
@@ -37,6 +37,10 @@ Wikipedia says
> In computer science, future, promise, delay, and deferred refer to constructs used for synchronizing program execution in some concurrent programming languages. They describe an object that acts as a proxy for a result that is initially unknown, usually because the computation of its value is not yet complete.
Sequence diagram
![Promise sequence diagram](./etc/promise-sequence-diagram.png)
## Programmatic Example of Promise Pattern in Java
The Promise design pattern is a software design pattern that's often used in concurrent programming to handle asynchronous operations. It represents a proxy for a value not necessarily known when the promise is created. It allows you to associate handlers with an asynchronous action's eventual success value or failure reason.
Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB