crono

class crono.CronoMostra(tauler, identif)

Bases: Thread

Inicia un fil de control que farà de cronòmetre a partir del valor del comptador en minuts corresponent a la clau identif del diccionari tauler.

Per cada minut que passi, el fil descompta del comptador un minut, actualitza el comptador i mostra pel canal estàndard de sortida el nou valor amb la resta de valors guardats en el tauler. Quant el comptador és zero, s’acaba el fil.

Mentre el fil és viu, es pot reiniciar el comptador via el mètode crono.fixa(), tornant el fil iniciant un nou cicle de marxa enrera dels minuts. Com que un altre procés pot reiniciar el comptador, cal protegir amb una secció crítica l’actualització del comptador de identif, i evitar situacions competitives.

__init__(tauler, identif)

Inicialitzador de la classe CronoMostra:

Parameters:
  • tauler – Objecte de la classe TaulerBus on hi ha les dades dels autobusos que circulen i els seus temps d’espera per arribar a la parada que executa la instanciació.

  • identif – Identificador combinat d’autobús i línia en el tauler a mostrar cada minut passat.

Returns:

Una instància de la classe parada.CronoMostra

atura()
fixa(valor)
pany = <unlocked _thread.lock object>
run()

Method representing the thread’s activity.

You may override this method in a subclass. The standard run() method invokes the callable object passed to the object’s constructor as the target argument, if any, with sequential and keyword arguments taken from the args and kwargs arguments, respectively.

class crono.CronometresMostra(tauler)

Bases: object

A partir de les actualitzacions d’un diccionari tauler (dict) de temps en minuts, es gestiona un diccionari rellotges de fils actius que cronometren i mostren periòdicament els nous temps descomptats.

Cada entrada de tauler té el seu pròpi cronòmetre en rellotges.

Els temps que siguin o esdevingui zero s’esborren del diccionari rellotges.

Per cada actualització (CronometresMostra.fixa()) de l’entrada de clau ident pel valor temps cal comprovar si té un fil actiu (El fil és Thread.is_alive()) en rellotges. Si és el cas, es reinicialitza (CronoMostra.fixa()) el valor corresponent al tauler, i engega CronoMostra.start(). En el cas que no hagi fil, es crea un nou fil CronoMostra. Quan el valor de l’entrada d”ident de tauler és zero, s’elimina l’entrada corresponent de rellotges i tauler.

__init__(tauler)
fixa(ident, temps)