#!/usr/bin/ruby
t1 = Thread.new do
10.times do
puts "hello from thread 1"
sleep(0.2)
end
end
t2 = Thread.new do
10.times do
puts "hello from thread 2"
sleep(0.2)
end
end
t1.join
t2.join
Para pasar parámetros se hace de la siguiente forma.
#!/usr/bin/ruby
t1 = Thread.new(1) do |id|
10.times do
puts "hello from thread #{id}"
sleep(0.2)
end
end
t2 = Thread.new(2) do |id|
10.times do
puts "hello from thread #{id}"
sleep(0.2)
end
end
t1.join
t2.join
Para controlar las secciones criticas tan solo hay que cambiar la variable de clase critical a true.
#!/usr/bin/ruby
counter = 0;
t1 = Thread.new do
100000.times do
Thread.critical = true
counter += 1
Thread.critical = false
end
end
t2 = Thread.new do
100000.times do
Thread.critical = true
counter -= 1
Thread.critical = false
end
end
t1.join
t2.join
puts counter
Se pueden consultar los demás métodos de la clase Thread en la documentación oficial.
0 comentarios:
Publicar un comentario