This package is very old and unmaintained. Please use ThreadsX.jl instead.
This package adds multi-threaded versions of functions operating on collections. Currently, the package contains the functions foreach
, map
, reduce
, mapreduce
, mapfoldl
, mapfoldr
.
The simplest way to use the package is the @threaded
macro, which converts all the supported functions in the expression to their multi-threaded equivalents.
Example:
julia> using ThreadedIterables
julia> a = rand(1:10, 4)
4-element Array{Int64,1}:
4
7
10
7
julia>@threaded map(x -> 2x, a)
4-element Array{Int64,1}:
8
14
20
14
Alternatively, the multi-threaded functions can be used directly - tforeach
instead of foreach
, tmap
instead of map
etc. Note that for mapreduce
, there are actually 3 options: tmapreduce
, maptreduce
and tmaptreduce
. These functions differ in whether the mapping part, the reduction part, or both of them are multi-threaded.