I've noticed that foreach_array is partly inspired by ThreadTools' tforeach. I did the same for DataFrames.jl, and we noticed that Iterators.partition doesn't give very good results since the last chunk will generally be smaller than others, which is bad for load balancing. See JuliaData/DataFrames.jl#2661 (comment) for details and a possible solution. I hope this is useful.