# How to call wait on multiple Tasks?

**URL:** <https://discourse.julialang.org/t/how-to-call-wait-on-multiple-tasks/50981>\
**Category:** Performance\
**Tags:** parallel, multithreading\
**Created:** [November 30, 2020, 8:30am UTC](https://discourse.julialang.org/t/how-to-call-wait-on-multiple-tasks/50981 "2020-11-30T08:30:19Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![s-kap](https://avatars.discourse-cdn.com/v4/letter/s/ba8739/32.png) [@s-kap](https://discourse.julialang.org/u/s-kap)\
**Post date:** [November 30, 2020, 8:30am UTC](https://discourse.julialang.org/t/how-to-call-wait-on-multiple-tasks/50981/1 "2020-11-30T08:30:19Z")

</div>

Hey all, I have some code that uses @spawn to generate ~50 tasks

```julia
tasks=Vector{Task}()

function process_row_group(range::Tuple{Int64,RangeMarker})
    for col_name in col_names
        push!(tasks, Threads.@spawn process_column_cursor(col_name, range))
    end
end

```

I know it’s possible to call `wait(task)` for a single one. What the best way to wait on them all? Would `foreach(wait, tasks)` be the best way to do this?

---

<div class="post-metadata">

**Author:** ![Jeff\_Emanuel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeff_emanuel/32/15440_2.png) [@Jeff\_Emanuel](https://discourse.julialang.org/u/Jeff_Emanuel)\
**Post date:** [November 30, 2020, 7:08pm UTC](https://discourse.julialang.org/t/how-to-call-wait-on-multiple-tasks/50981/2 "2020-11-30T19:08:46Z")

</div>

```julia
    @sync for col_name in col_names
        Threads.@spawn process_column_cursor(col_name, range))
    end

```

---

<div class="post-metadata">

**Author:** ![Tomas\_Pevny](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tomas_pevny/32/25466_2.png) [@Tomas\_Pevny](https://discourse.julialang.org/u/Tomas_Pevny)\
**Post date:** [November 30, 2020, 7:41pm UTC](https://discourse.julialang.org/t/how-to-call-wait-on-multiple-tasks/50981/3 "2020-11-30T19:41:49Z")

</div>

Is there a simple way, how I can wait for one of them? I.e. when one of them has available value, I would consume it and ask it for calculating the next value.

Thanks,  
Tomas

---

<div class="post-metadata">

**Author:** ![Jeff\_Emanuel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeff_emanuel/32/15440_2.png) [@Jeff\_Emanuel](https://discourse.julialang.org/u/Jeff_Emanuel)\
**Post date:** [November 30, 2020, 7:46pm UTC](https://discourse.julialang.org/t/how-to-call-wait-on-multiple-tasks/50981/4 "2020-11-30T19:46:18Z")

</div>

Use Channels to communicate between tasks.  
[Asynchronous Programming · The Julia Language](https://docs.julialang.org/en/v1/manual/asynchronous-programming/)
