¿Cuál es la diferencia entre thread- awareness y thread- safety?¿Cuál es la diferencia entre thread-aware y thread-safe?
Respuesta
cortesía http://sreekalyan.blogspot.com/2007/01/thread-safe-and-thread-aware.html
Thread Aware En cualquier momento dado, a lo sumo un hilo puede estar activa en el objeto. El objeto conoce los hilos que lo rodean y se protege de los hilos colocando todos los hilos en una cola. Dado que solo puede haber un hilo activo en el objeto en cualquier momento dado, el objeto siempre conservará su estado. No habrá problemas de sincronización.
Seguridad de subprocesos: En un momento determinado, varios subprocesos pueden estar activos en el objeto. El objeto sabe cómo tratar con ellos. Ha sincronizado correctamente el acceso a sus recursos compartidos. Puede conservar sus datos de estado en este entorno multiproceso (es decir, no caerá en estados intermedios y/o indeterminados). Es seguro usar este objeto en un entorno multihilo.
El uso de un objeto que no es ni thread-aware ni thread-safe puede dar como resultado datos incorrectos y aleatorios y misteriosas excepciones (debido a intentar acceder al objeto cuando está siendo utilizado por un hilo y es inestable, estado intermedio en el instante de acceso del segundo hilo).
Creo que una función que tiene su propia serialización de bloqueo mutex es segura para la ejecución de subprocesos, pero quizás no tenga en cuenta los hilos.
- 1. ¿Cuál es la diferencia entre {0} y ""?
- 2. Cuál es la diferencia entre = y: =
- 3. ¿Cuál es la diferencia entre .ToString (+) y ""
- 4. Cuál es la diferencia entre $ (...) y `...`
- 5. ¿cuál es la diferencia entre:.! y: r !?
- 6. ¿Cuál es la diferencia entre ".equals" y "=="?
- 7. ¿Cuál es la diferencia entre dict() y {}?
- 8. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 9. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 10. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 11. ¿Cuál es la diferencia entre + = y = +?
- 12. ¿Cuál es la diferencia entre " " y ""?
- 13. Cuál es la diferencia entre $ y jQuery
- 14. OpenGL (ES) - ¿Cuál es la diferencia entre frustum y orto?
- 15. Cuál es la diferencia entre la función() {}() y la función() {}()
- 16. ¿Cuál es la diferencia entre la abstracción y la encapsulación?
- 17. ¿Cuál es la diferencia entre @ y $ y% en MSBuild?
- 18. ¿Cuál es la diferencia entre la vinculación estática y dinámica?
- 19. ¿Cuál es la diferencia entre la sección .got y .got.plt?
- 20. ¿Cuál es la diferencia entre el colado y la coerción?
- 21. ¿cuál es la diferencia entre el complemento y la biblioteca?
- 22. ¿Cuál es la diferencia entre el casting y la conversión?
- 23. ¿Cuál es la diferencia entre WPF y la aplicación Silverlight?
- 24. ¿Cuál es la diferencia entre uno mismo y la ventana?
- 25. ¿Cuál es la diferencia entre CookieContainer y la colección Response.Cookies?
- 26. ¿Cuál es la diferencia entre la relación Composición y Asociación?
- 27. ¿cuál es la diferencia entre el material y la textura?
- 28. ¿Cuál es la diferencia entre el marco y la arquitectura?
- 29. ¿Cuál es la diferencia entre la carpeta vim72 y vimfiles?
- 30. ¿cuál es la diferencia entre la lex y yacc