2015-06-14 90 views
2

是否需要使用锁(或互斥体)来访问茱莉亚不同任务(协程)中的相同(全局)变量?从多个任务访问相同的变量

茱莉亚文件明确规定了corutines使用相同的线程:

农产品()和消费()不启动,可以在单独的CPU上运行的线程。在并行计算的主题下讨论真正的内核线程。

在这种情况下,我需要考虑不同协同程序之间的任何竞态条件,同时访问不同异步任务中某些全局变量的值吗?茱莉亚调度程序在单个赋值/访问操作中是否具有任何原子操作特性?

+0

Julia 0.3甚至没有锁。 –

回答

1

从文档

在朱莉娅

并行编程是建立在两个基本:远程引用远程调用

换句话说,它不是julistic使用编程锁,但通过获取值和远程调用。 (link)中提供的示例。您还可以在在线存储库中查找并行示例(例如this)。