Estaba leyendo en ROR (aún no me he zambullido), y he oído que no es seguro para subprocesos. Obviamente, esto no significa que más de una persona no puede acceder a su sitio al mismo tiempo, entonces, ¿qué significa exactamente? ¿Dónde entran en juego los hilos en ROR? ¿Simplemente se refieren al manejo de la solicitud?¿Qué quieres decir con Ruby on Rails no es seguro para subprocesos?
Respuesta
Su información está desactualizada. Es seguro para subprocesos como de 2.2.2
Tenga en cuenta Ruby MRI 1.8.x, la aplicación más utilizada de Rubí utiliza Green Threads, así que con 1.8.x si crea 100 hilos que se ejecutan en la misma CPU. Por lo tanto, al hospedar sitios web de Rails mediante MRI, es probable que desee tantas instancias de Ruby ejecutándose como usted tenga CPUS. Cosas como passenger se ocupan de esto por ti.
Esto solía ser un gran problema para JRuby, porque JRuby tiene hilos nativos, y los procesos de malabares parecen superfluos. De todos modos, está resuelto ahora.
En un lado, Iron Ruby, el intérprete .Net Ruby ejecuta subprocesos nativos.
Nota: Ruby 1.9.1 utiliza subprocesos nativos, pero todavía hay un bloqueo de intérprete global en su lugar.
Básicamente lo que está diciendo es que no puede tener múltiples copias de rieles ejecutándose en el mismo proceso bajo diferentes subprocesos porque es posible que algunos recursos se filtren entre los subprocesos causando comportamientos extraños como objetos que aparentemente cambian/desapareciendo en momentos aleatorios.
Además, también podría darse el caso de que las clases no estén diseñadas con ninguna sincronización incorporada, por lo que es difícil colocar partes de los rieles en subprocesos y tener otras partes compartidas entre subprocesos.
Vale la pena mencionar que Ruby MRI 1.8.x usa Green Threads, pero Ruby MRI 2 tendrá subprocesos nativos.
- 1. Ruby on Rails: alias_method_chain, ¿qué es exactamente?
- 2. ¿Qué es MVC en Ruby on Rails?
- 3. ¿PrintWriter es seguro para subprocesos?
- 4. Log4Net FileAppender no es seguro para subprocesos?
- 5. Enum.TryParse - ¿es seguro para subprocesos?
- 6. ¿SecureRandom es seguro para subprocesos?
- 7. Ruby on Rails CoffeeScript no
- 8. SSL con Ruby on Rails
- 9. ¿Qué es ORM relacionado con Ruby on Rails?
- 10. ¿Por qué este código no es seguro para subprocesos?
- 11. ¿Qué se entiende por CoreData no es seguro para subprocesos?
- 12. ¿Stream.Write es seguro para subprocesos?
- 13. ¿Es PHP seguro para subprocesos?
- 14. Ruby vs. Ruby on Rails
- 15. NSTimer ¿es seguro para subprocesos?
- 16. ¿MongoDB es seguro para subprocesos?
- 17. EventAggregator, ¿es seguro para subprocesos?
- 18. ¿Es System.ServiceModel.Channels.BufferManager seguro para subprocesos?
- 19. ¿Es itertools seguro para subprocesos?
- 20. ¿DWScript es seguro para subprocesos?
- 21. link_to con Ruby on Rails
- 22. ¿Para qué no es seguro para hilos?
- 23. ¿HttpContext.Current.Cache es seguro para subprocesos?
- 24. ¿SQLite.Net es seguro para subprocesos?
- 25. Antipatterns con Ruby on Rails
- 26. Ruby on rails "No coincide la ruta"
- 27. Intellisense para Ruby, Ruby on Rails, Python
- 28. Cómo dominar Ruby on Rails
- 29. Ruby on Rails: descargable
- 30. Docsplit Ruby on Rails
en realidad Ruby 1.9 ya tiene hilos nativos .. –
Lo que dices es cierto, pero yo hice la distinción porque 1.9 es la versión experimental que conduce a 2.0. (Algo así como los kernels de Linux impares son experimentales y no deberían usarse en producción.) –
@Benjamin, 1.9 ha sido declarado estable en el sitio web de Ruby, es un cambio masivo de arquitectura sobre 1.8 (ya que está basado en yarv) I no estoy seguro de que el alcance de las características en 2.0 esté hecho. –