He estado leyendo algunos blogs sobre programación de subprocesos múltiples en ruby. Lo que noté es que el autor tiende a usar la palabra seguridad de hilo. Qué significa eso? ¿Por qué es importante escribir el código de seguridad de hilo?¿Qué significa seguridad con subprocesos?
Respuesta
Si tiene un recurso (digamos una Lista global de libros, por ejemplo) y tiene dos hilos en ejecución que pueden modificar esta lista. Hay muchas situaciones en las que los datos de la lista serán inconsistentes.
- (Tema A lee un libro ands muestra su Data)
- (Tema B elimina el mismo libro, mientras que el de datos es utilizada por Tema A)
- (enhebrar una ahora quiere añadir algo de información a la libro)
lo que tiene que hacer que el código flujos seguros de manera que en cualquier momento sólo un hilo solo puede tener acceso de escritura a la lista de libros.
bloqueo de bloqueo mencionado por SpyrosP ocurre cuando el hilo A bloquea la lista para escritura y espera a que el subproceso B añada datos en la lista. Porque ambos hilos esperarán el uno al otro a hacer algo que no pueden hacer. Eso solo ocurre si el mecanismo de seguridad del hilo no está implementado correctamente.
Muy bien explicado. +1 Permítanme también agregar que la mayoría de los paquetes listos (como Queue para Python) se basan en mecanismos seguros para subprocesos listos para usar. – Spyros
@SpyroP ¡Buen punto! Encontrará muchas estructuras de datos de Seguridad de subprocesos listas para usar en muchos lenguajes de programación. Estoy bastante seguro de que algunas de las Listas y Mapas de Ruby también se preocupan por eso. – Chris
- 1. msdn: ¿Qué es "Seguridad de subprocesos"?
- 2. Asegurando seguridad de subprocesos
- 3. Seguridad de subprocesos de log4net
- 4. Seguridad de subprocesos de JTextArea.append
- 5. Seguridad de subprocesos de SocketOutputStream
- 6. Seguridad de subprocesos en Javascript?
- 7. Seguridad de subprocesos de WeakReference
- 8. Java: Bibliotecas Swing y seguridad de subprocesos
- 9. C++ Resumen de seguridad de subprocesos
- 10. ReadOnlyCollection <T> Seguridad para subprocesos
- 11. Seguridad de subprocesos en la clase Java
- 12. ¿Qué significa "escalares filtrados: 1" significa?
- 13. ¿Qué significa "\\. \", "\ ?? \", "\\? \", "\\"?
- 14. Son métodos estáticos de seguridad de subprocesos
- 15. ¿Qué significa esta advertencia de seguridad (clase de proceso .Net)?
- 16. Seguridad de subprocesos Java de la lista
- 17. Seguridad de subprocesos en ASP.Net MVC
- 18. funciones miembro estáticas y seguridad de subprocesos
- 19. ¿Sincronizar NSMutableArray para seguridad de subprocesos?
- 20. Código de reentrada vs. Seguridad de subprocesos
- 21. función de miembro estático y seguridad de subprocesos
- 22. ¿Qué significa el objeto 'thread safe'?
- 23. ¿Qué significa "babosa" significa
- 24. ¿Qué significa ('../') significa?
- 25. ¿Qué significa Field.Index.NOT_ANALYZED_NO_NORMS significa
- 26. ¿Qué significa threadsafe?
- 27. ¿Debo preocuparme por la seguridad de subprocesos en ASP.NET con AJAX?
- 28. ¿Qué significa "?" significa en Java?
- 29. ¿Qué significa xmlns = "" significa exactamente
- 30. ¿Qué significa "==="?
+1 para pensar en lo que está leyendo, no todo el mundo lo hace :-) – Chris