# Stream in Julia

**URL:** <https://discourse.julialang.org/t/stream-in-julia/14413>\
**Category:** New to Julia\
**Tags:** question\
**Created:** [September 1, 2018, 5:33pm UTC](https://discourse.julialang.org/t/stream-in-julia/14413 "2018-09-01T17:33:21Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![hasanOryx](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/hasanoryx/32/5373_2.png) [@hasanOryx](https://discourse.julialang.org/u/hasanOryx)\
**Post date:** [September 1, 2018, 5:33pm UTC](https://discourse.julialang.org/t/stream-in-julia/14413/1 "2018-09-01T17:33:21Z")

</div>

Is there anything in Julia equivalent or near to `Stream` in Dart?

> **[Asynchronous programming: Streams](https://dart.dev/tutorials/language/streams)**
>
> Learn how to consume single-subscriber and broadcast streams.

---

<div class="post-metadata">

**Author:** ![jpsamaroo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jpsamaroo/32/46804_2.png) [@jpsamaroo](https://discourse.julialang.org/u/jpsamaroo)\
**Post date:** [September 1, 2018, 6:21pm UTC](https://discourse.julialang.org/t/stream-in-julia/14413/2 "2018-09-01T18:21:23Z")

</div>

Yes, the equivalents would be `Channel` ([Parallel Computing · The Julia Language](https://docs.julialang.org/en/v1/manual/parallel-computing/#Channels-1)) and `Condition` ([Tasks · The Julia Language](https://docs.julialang.org/en/v1/base/parallel/#Base.Condition)).

A `Channel` provides a way to (asynchronously) pass values between `Task`s, and can either be buffering or blocking. You can `put!` a value into a `Channel`, and `take!` a value from a `Channel`, which, as you might expect, operates in a FIFO (first-in → first-out) manner.

A `Condition` provides an edge-triggered signal that `Task`s can `wait` on (you can also `wait` on a `Channel`, which will trigger when a value is available in the `Channel`).
