gpt4 book ai didi

multithreading - 线程for循环中变量的范围?

转载 作者:行者123 更新时间:2023-12-04 10:16:54 24 4
gpt4 key购买 nike

在下面的例子中

shared_arr = zeros(4000)
Threads.@threads for thread = 1:4
tmp_arr = rand(1000)
for i = 1:1000
shared_arr[(thread - 1)*1000+i] = tmp_arr[i]
end
end

我相信 shared_arr在所有线程之间共享。是 tmp_arr分配了 4 次,以便每个线程都有自己的 tmp_arr ?

最佳答案

根据scoping rules在文档中描述,每当调用 for 循环时都会引入一个新的范围。自 tmp_arr没有在循环之前声明,它将在 for 循环的每次迭代中成为一个不同的值。请注意 rand但是根据@Lyndon White 的评论,可能不是线程安全的。

关于multithreading - 线程for循环中变量的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44123830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com