Sas*_*ash 1 ruby arrays multithreading
我发现很难理解在 Ruby 中使用多个线程插入数组是否安全。
据我了解 Ruby 数组,就像任何其他对象一样不是线程安全的。但这是否意味着插入数组也不安全?
例如,我有以下代码:
arr=[]
threads = []
for i in 1..5
threads << Thread.new do
for j in 1..1000
arr << ((1000 * i) + j)
end
end
end
threads.each(&:join)
puts arr.length
Run Code Online (Sandbox Code Playgroud)
它只旋转 5 个线程,每个线程将 1000 个数字推送到数组中。看起来结果总是一致的,我总是得到数组中 5000 个元素的结果。
那么这样做安全吗?
| 归档时间: |
|
| 查看次数: |
1555 次 |
| 最近记录: |