在以下示例中
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
?
答案 0 :(得分:0)
根据文档中描述的scoping rules,每当调用for循环时都会引入一个新的作用域。由于tmp_arr
未在循环之前声明,因此在for循环的每次迭代中它将是一个不同的值。请注意,根据@Lyndon White的评论,rand
可能不是线程安全的。