如何在朱莉娅中使用锁

Yve*_*ves 5 synchronized julia

我和朱莉娅一起工作.IDE是Juno.

如果我是对的,@async可以生成一个任务,它就像一个线程.
所以我们可以这样做:

@async begin
   # do something1
end
@async begin
   # do something2
end
Run Code Online (Sandbox Code Playgroud)

现在,我需要锁定一个线程.例如,do something1是将消息推送到列表并do something2从同一列表中弹出消息.

就像synchronized在Java中一样.

是什么synchronized在朱莉娅?

Sal*_*apa 3

还有一个@sync宏:

帮忙?> @sync

等待@async、@spawn、@spawnat 和@parallel 的所有动态封闭使用完成。封闭的异步操作抛出的所有异常都会被收集并作为 CompositeException 抛出。

@sync @async begin
   # do something1
end

@sync begin
    # some code    
    @async begin
        # do something2
    end
    @async # do something 3
end
Run Code Online (Sandbox Code Playgroud)