#Fichier thread_4.py
import _thread
import time

print("début du programme")

#Enregistrement des messages des processus dans une variable globale
message = ""

def processus(id, nbr):
    if id == 1:
        verrouillage.acquire()
    i=0
    while i <3:
        global message
        message += str(_thread.get_ident()) + " : " + str(nbr) + "\r\n"
        time.sleep(0.5)
        i += 1
    global nb_thread_fini
    nb_thread_fini += 1

#Nombre de thread prévu
nb_thread = 4
#Nombre de thread après réalisation
nb_thread_fini = 0

#Création d'un objet "verrouillage"
verrouillage = _thread.allocate_lock()
verrouillage.acquire()

#Création de quatre instances thread
for th in range(1, nb_thread + 1):
    _thread.start_new_thread(processus, (th, 11111111*th))

#Boucle d'attente de fin d'exécution des thread
while nb_thread_fini + 1 < nb_thread:
    pass
verrouillage.release()
while nb_thread_fini < nb_thread:
    pass
print(message)
print("Fin du programme")




