如何在Julia中同时运行两个功能?

bit*_*ise 2 multiprocessing julia

我正在尝试在julia中同时运行两个功能,但我不知道该怎么做。在这里您可以看到我的代码:

function area(side::Float64)
    return side*side
end

function f(n::Int64)
    mat = zeros(n,n)
    for i=1:n
        for j=1:n
            mat[i,j] = area(rand())
        end
    end
    return mat
end

function g(n::Int64)
    mat = zeros(n,n)
    for i=1:n
        for j=1:n
            mat[i,j] = area(rand()*rand())
        end
    end
    return mat
end

s1 = f(10)
s2 = g(10)
hcat(s1,s2)
Run Code Online (Sandbox Code Playgroud)

Kri*_*son 5

在Julia 1.3中,您可以使用以下命令生成将在不同线程上安排的任务Threads.@spawn

begin
s1 = Threads.@spawn f(10)
s2 = Threads.@spawn g(10)
s1 = fetch(s1)
s2 = fetch(s2)
end
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参见公告博客文章:https : //julialang.org/blog/2019/07/multithreading

  • 太好了:)等不及最终的1.3版本。也许值得一提的是必须设置“ JULIA_NUM_THREADS”? (3认同)