Channel (programming): Difference between revisions

Content deleted Content added
External links: Fixed an unresolvable link to an "official" distribution of "channel.c".
No edit summary
Line 66:
== Applications ==
In addition to their fundamental use for interprocess communication, channels can be used as a primitive to implement various other concurrent programming constructs which can be realized as streams. For example, channels can be used to construct [[futures and promises]], where a future is a one-element channel, and a promise is a process that sends to the channel, fulfilling the future.<ref>"[https://sites.google.com/site/gopatterns/concurrency/futures Futures]", ''[https://sites.google.com/site/gopatterns Go Language Patterns]''</ref> Similarly, [[iterator]]s can be constructed directly from channels.<ref>"[https://sites.google.com/site/gopatterns/object-oriented/iterators Iterators]", ''[https://sites.google.com/site/gopatterns Go Language Patterns]''</ref>
 
== List of implementations ==
 
=== List of non-standard, library based implementations of channels ===
* For C++:
** [[stlab]]<ref>{{cite web|url=https://stlab.cc/libraries/concurrency|title=stlab is the ongoing work of what was Adobe’s Software Technology Lab. The Adobe Source Libraries (ASL), Platform Libraries, and new stlab libraries are hosted on github.|date=2021-01-31}}</ref> This implementation supports splits, and different merge and zip operations. Different executors can be attached to the individual nodes.
 
== References ==