Threading Flashcards
Que son los Locks (en genera)
herramientas que van a permitir que hilos accedan a recursos
Que buscan evitar los Locks
Su principal objetivo es evitar condiciones de carrera
Que son las condiciones de carrera
Son problemas generados cuando dos hilos intentan acceder o modificar el mismo recurso al mismo tiempo.
Generará: resultados inesperados o erroneos
Lock
Garantiza un bloqueo básico, de exclusión mutua; solo un hilo puede ejecutarse en una sección crítica
RLock
Es un Lock reentrante que permite al mismo hilo adquirirlo múltiples veces sin bloquearse
Bases del funcionamiento de Locks
Lock.aquire() y lock.release(), si se busca automatizada utilizar with
Hilos Daemon
Hilos secundarios.
Los hilos daemon se terminan automáticamente cuando finaliza el programa principal
Hilos NO Daemon
Los hilos no-daemon deben completarse en su totalidad antes de que el programa principal termine
Como se setea un hilo daemon
Uso: hilo.setDaesmon(true)
(antes de iniciar el hilo)
Comunicación entre hilos: threading.Event
Permite señalizar eventos entre hilos
método set de threading.event
activa el evento
método clear de threading.event
resetea un evento
método wait de threading.event
bloque hasta que el evento sea activado
Semaphore
Controla cuantos hilos pueden acceder a un recurso simultáneamente
Condition
Facilita la sincronización avanzada entre hilos con
wait(), notify() y notify_all()