代码之家  ›  专栏  ›  技术社区  ›  Skylion

共享阵列能否在Julia中安全地处理并发写入?

  •  7
  • Skylion  · 技术社区  · 9 年前

    所以我试图在Julia中优化一个数组操作,但注意到我的矩阵偶尔会出现较大的错误。我还注意到,在Julia中存在同时写入SharedArray的同一索引的可能性。我想知道朱莉娅是否能安全处理。如果没有,我怎么能处理?

    下面是我的问题的一个基本示例

    for a list of arbitrary x,y indexes in array J
        j[x,y] += some_value
    end
    

    Julia可以处理这种情况吗?或者像C一样,是否存在覆盖数据的可能性。他们在朱莉娅的原子操作是为了弥补这一点吗?

    1 回复  |  直到 9 年前
        1
  •  5
  •   tholy    9 年前

    共享阵列故意没有锁定,因为锁定可能代价高昂。最简单的方法是将不重叠的工作分配给不同的流程。但是,您可以搜索查看是否有人编写了锁定库,或者自己尝试: https://en.wikipedia.org/wiki/Mutual_exclusion