标签: thread-safety julia
是否需要使用锁(或互斥锁)来访问julia中不同任务(协程)的相同(全局)变量?
julia文件清楚地指明了corutines使用相同的线程:
produce()和consume()不启动可在不同CPU上运行的线程。真正的内核线程在并行计算主题下讨论。
在这种情况下,在访问不同异步任务中的某些全局变量的值时,是否需要考虑不同协程之间的任何竞争条件? julia调度程序在单个赋值/访问操作上是否具有任何原子操作特性?
答案 0 :(得分:1)
来自文档
Julia中的并行编程基于两个原语:远程引用和远程调用
换句话说,它不是 julistic 来使用锁来编程,而是通过获取值和远程调用来进行编程。
请参阅文档(link)中提供的fetch()和@spawnat示例。您还可以在在线存储库中查找并行示例(例如this)。
fetch()
@spawnat