[Ror-es] ¿Rails es multi-hilo o no?

Sergio Cambra .:: entreCables - Symbol Servicios Informáticos S.L. ::. sergio at entrecables.com
Tue Jan 20 11:11:23 GMT 2009


El Tuesday 20 January 2009 11:49:41 Andrés gutiérrez escribió:
> Hola, creo que la respuesta es que NO. Más que nada por algún mensaje que
> he leido en esta lista diciendo que ahora no lo es y que esa es una de las
> pegas que se le puede poner al Framework.
> Bien, estoy leyendo un tutorial de Ruby, y me encuentro con que Ruby es
> multi-hilo.
>
> first = Thread.new() do
>   myindex = 0
>   while(myindex < 10):
>     puts "Thread One!"
>     sleep 3
>     myindex += 1
>   end
> end
>
> second = Thread.new() do
>   myindex2 = 0
>   while(myindex2 < 5):
>     puts "Thread Two!"
>     sleep 5
>     myindex2 += 1
>   end
> end
>
> third = Thread.new() do
>   myindex3 = 0
>   while(myindex3 < 2):
>     puts "Thread Three!"
>     sleep 10
>     myindex3 += 1
>   end
> end
>
> first.join()
> second.join()
> third.join()
>
> Si no estoy confundido el Objeto Thread es lo que se llama hilo ¿NO?
> Lo que hace este codigo es ir alternado la salida por consola de los puts
> de los 3 bloques ( "Thread One!", "Thread Two!", "Thread One!",..."Thread
> Three!",...) así hasta que
> se acaben los while.
>
> ¿Esto es un proceso multi-hilo en ruby?
> ¿Me estoy haciendo la picha un lio?
>
> No tengo claro eso de que rails NO es multi-thread.
>
> cualquier aclaración será bien recibida
>
> Un saludo

A partir de la version 2.2 (la ultima en estos momentos) sí que es multihilo. 
Antes no, pero no porque ruby no tuviera hilos, si no porque el codigo de 
rails no era seguro en hilos (thread safe), si la ejecucion de un hilo puede 
afectar a otro hilo entonces no es thread safe y eso es lo que pasaba antes 
de la 2.2

-- 
Sergio Cambra .:: entreCables - Symbol Servicios Informáticos S.L. ::.
Nicolás Guillén 6, locales 2 y 3. 50.018 Zaragoza
T) 902 021 404 F) 976 52 98 07 E) sergio at entrecables.com


More information about the Ror-es mailing list