Solo quiero un poco de claridad sobre esto. Imagine que uso la API de Windows de EnterCriticalSection. Llamo todos ellos con EnterCriticalSection(&criticalsection);
¿Qué es exactamente una sección crítica?
Esta es la función de hilo que es multi roscado
void thread(){
//enter critical section (part 1)
data
//leave critical section
///more data 1
//entercritical section (part 2)
//more data 2
//leave critical section
}
Una vez que un hilo entra en la crítica (parte 1), otros hilos no puede entrar en esa sección independientemente de si más datos 1 en realidad tiene datos compartidos o no ¿verdad? También durante ese tiempo, otros hilos tampoco pueden ingresar a la parte 2 de la sección crítica.
Hans - no es cierto. Jake preguntó si un proceso en CriticalSection1 bloquearía CS1 y CS2. Esto es falso: las secciones críticas son independientes. Jake, si quieres CS1 para bloquear ambos, anidarás CS2 dentro de CS1. – Greg