Cuál es la diferencia entre Process.fork y los nuevos métodos Process.spawn en Ruby 1.9.2 y cuál es mejor ejecutar otro programa en un subproceso ? Por lo que tengo entendido, Process.fork acepta bloque de código y Process.spawn toma un comando de sistema más algunos otros parámetros. ¿Cuándo debo usar uno en lugar del otro?Cuál es la diferencia entre Process.fork y Process.spawn en Ruby 1.9.2
Respuesta
¿Cuál es la diferencia entre Process.fork y los nuevos métodos Process.spawn en Ruby 1.9.2
Process.fork
le permite ejecutar código Ruby en otro proceso. Process.spawn
le permite ejecutar otro programa en otro proceso. Básicamente, Process.spawn
es como usar Process.fork
y luego llamar al exec
en el proceso bifurcado, excepto que le da más opciones.
y cuál es mejor ejecutar otro programa en un subproceso?
Si necesita compatibilidad hacia atrás, utilice fork
+ exec
como spawn
no está disponible en 1.8. De lo contrario, use spawn
ya que ejecutar otro programa en un subproceso es exactamente para lo que está hecho el spawn
.
Por lo que tengo entendido Process.fork acepta el bloque de código y Process.spawn toma un comando del sistema más algunos otros parámetros.
Exactamente.
¿Cuándo debo usar uno en lugar del otro?
Uso fork
si es necesario para ejecutar código arbitrario de rubí en un proceso separado (no se puede hacer eso con spawn
). Use spawn
si necesita invocar una aplicación en un subproceso.
Creo que Process.Fork bifurca el proceso actual y Process.Spawn genera un nuevo proceso. Ellos son bastante diferentes. ¿Quieres un nuevo hilo o un nuevo proceso?
- 1. ¿Cuál es la diferencia entre Ruby y Ruby on Rails?
- 2. ¿Cuál es la diferencia entre% Q y% {} en ruby?
- 3. ¿cuál es la diferencia entre salir y salir? en ruby?
- 4. ¿Cuál es la diferencia entre Object y BasicObject en Ruby?
- 5. ¿Cuál es la diferencia entre STDIN y $ stdin en Ruby?
- 6. ¿Cuál es la diferencia entre Class y Klass en ruby?
- 7. ¿Cuál es la diferencia entre include y require en Ruby?
- 8. ¿Cuál es la diferencia entre incluir y extender en Ruby?
- 9. ¿Cuál es la diferencia entre require_relative y require en Ruby?
- 10. ¿Cuál es la diferencia entre Ruby on Rails y Grails?
- 11. ¿Cuál es la diferencia entre Rack y Rails Metal (Ruby)?
- 12. ¿Cuál es la diferencia entre + = y = +?
- 13. ¿cuál es la diferencia entre:.! y: r !?
- 14. ¿Cuál es la diferencia entre ".equals" y "=="?
- 15. Cuál es la diferencia entre $ y jQuery
- 16. Cuál es la diferencia entre = y: =
- 17. Cuál es la diferencia entre $ (...) y `...`
- 18. ¿Cuál es la diferencia entre dict() y {}?
- 19. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 20. ¿Cuál es la diferencia entre " " y ""?
- 21. ¿Cuál es la diferencia entre .ToString (+) y ""
- 22. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 23. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 24. ¿Cuál es la diferencia entre {0} y ""?
- 25. ¿Cuál es la diferencia de enunciado y expresión en Ruby?
- 26. Diferencia de Ruby Hash en 1.8.7 y 1.9.2
- 27. Diferencia entre "y" y && en Ruby?
- 28. ¿Cuál es la diferencia entre "=" y "=>" y "@variable", "@@ variable" y ": variable" en ruby?
- 29. ¿Cuál es la diferencia entre GEM_HOME y GEM_PATH?
- 30. ¿Cuál es la diferencia entre matrices y hash?
Necesito un nuevo proceso y actualmente uso Process.fork (para codificación de video en segundo plano). Acabo de encontrar el nuevo método Process.spawn en Ruby 1.9 y tenía curiosidad acerca de las diferencias y si puedo beneficiarme de alguna manera. – Vincent