Pour répondre à la deuxième question, voici un problème qui peut bénéficier beaucoup de Rx. Cela s'appelle "Devenez riche rapidement".
Vous avez développé un jeu du même nom et il se vend plutôt bien. Mais il n'est disponible que dans vos magasins en gros. Pour faciliter le traitement des espèces, vous disposez d'un tapis roulant qui coule vers vous.
(N'hésitez pas à changer l'histoire ci-dessus :))
Les vendeurs y placent des liasses de billets liées sans aucune étiquette indiquant le montant et le type de factures dans la liasse. Votre travail consiste à trier et à compter l'argent. Plus tard, lorsque vous obtenez plus d'argent, vous pouvez en embaucher d'autres pour vous aider.
Dans ce cas, la source est une source asynchrone de liasses de billets (producteur). Vos employés et fournisseurs attendent de l'argent, mais vous devez consommer les liasses, les déballer et utiliser votre logique métier personnalisée pour reconditionner de manière appropriée pour les payer.
Les vendeurs courent sur leur propre fil, afin qu'ils n'aient pas à attendre que vous comptiez ce qu'ils jettent à la ceinture. Votre temps est mieux utilisé si l'on vous dit quand plus d'argent est disponible pour compter, d'ici là, vous pouvez faire d'autres travaux.
Vous pouvez représenter chaque liasse par un octet [].
Il s'agit d'une situation réelle assez courante; lorsque vous récupérez une ressource [par exemple, des pages Web pour les moteurs de recherche, des images ou des vidéos] sur un réseau ou des données de périphériques, vous les obtenez en morceaux d'octets (éventuellement avec des en-têtes). Dans un seul thread ou dans un environnement multi-thread trop difficile à travailler, vous avez tendance à les regrouper et à les traiter. Plus maintenant!!