domenica 25 febbraio 2024

Python Thread e animazione barretta di caricamento

Un programma in python che dimostra l'uso di Thread e l'animazione su prompt di una barretta che gira su se stessa.

import threading
import time

def animazione_barra(termina):
    while not termina.is_set():
        for char in '|/-\\':
            print('\r' + char, end='', flush=True)
            time.sleep(0.1)

def conteggio_numeri(termina):
    for i in range(1, 11):
        print(f'\r {i}', end='', flush=True)
        time.sleep(1)
    
    termina.set()

if __name__ == '__main__':
    termina_animazione = threading.Event()
    
    thread_animazione = threading.Thread(target=animazione_barra, args=(termina_animazione,))
    thread_conteggio = threading.Thread(target=conteggio_numeri, args=(termina_animazione,))
    
    thread_animazione.start()
    thread_conteggio.start()
    
    thread_animazione.join()
    thread_conteggio.join()