从多个任务中访问同一个变量

时间:2015-06-14 17:10:32

标签: thread-safety julia

是否需要使用锁(或互斥锁)来访问julia中不同任务(协程)的相同(全局)变量?

julia文件清楚地指明了corutines使用相同的线程:

  

produce()和consume()不启动可在不同CPU上运行的线程。真正的内核线程在并行计算主题下讨论。

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

1 个答案:

答案 0 :(得分:1)

来自文档

  

Julia中的并行编程基于两个原语:远程引用远程调用

换句话说,它不是 julistic 来使用锁来编程,而是通过获取值和远程调用来进行编程。

请参阅文档(link)中提供的fetch()@spawnat示例。您还可以在在线存储库中查找并行示例(例如this)。