На днях нарисую новую карту абстракций асинхронности, они не заменяют друг друга, и частая проблема - натягивание совы на глобус, и.е. неуместное применение абстракций. Есть разные по своей природе задачи, есть разные масштабы грануляции и вариативность в других аспектах:
По грануляции:
- multiple: iterator, queue, collection
- value: promise, signal, automata
Разное управление потоком:
- control flow: generators, async/await
- event flow: signal, observer, stream
Разные по владению состоянием:
- exclusive: future, async compose
- shared: mutex, locks, semaphore
- cooperative: chain of responsibility
И таких аспектов еще несколько.
Post #177
2.23K
- ❤ 13
- 🔥 5
- 👍 4