Respuesta

6

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).

1

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.

Cuestiones relacionadas