programming-examples/ruby/_Basics/gil.rb

26 lines
577 B
Ruby
Raw Normal View History

2019-11-15 12:59:38 +01:00
# This simple fact is what makes threads so powerful, and also what makes them
# difficult to work with. I've already given you an idea of why threads are
# good; here's a simple program to illustrate their difficulty.
shared_array = Array.new
10.times.map do
Thread.new do
1000.times do
shared_array << nil
end
end
end.each(&:join)
# Here you can see that we have 10 * 10000 elements in array
puts shared_array.size
# Note that different ruby can show different result
# GIL exist only in MRI ruby
# $ ruby => 10000
# $ jruby => 7521
# $ rbx => 8541