Los Hilos son procesos en paralelo que se ejecutan al mismo tiempo que el programa principal Se usa la librería threading El hilo se debe iniciar [hilo.start()] Debe existir una función que realice la tarea del hilo
import threading as th
import time
def paralelo():
global contador
global cont2
cont2 = True
contador = 0
while cont2:
time.sleep(1)
contador+=1
print("Fin del Hilo")
print("Inicio programa Principal")
hilo = th.Thread(target=paralelo)
hilo.start()
global cont1
cont1 = True
global cont2a
while cont1:
dato = input("Digita algo 'A' para ver conteo 'Z' para finalizar: ")
if dato=="A":
print(contador)
elif dato=="Z":
cont1=False
cont2=False
else:
print(dato)
print("Se terminó del programa principal")
2. Creación de dos hilos infinitos, el primero, envía un A1 cada 1 segundo y el segundo hilo envía un B0.5 cada medio segundo.
import threading as th
import time
def paralelo():
while True:
time.sleep(1)
print(f"A1")
def paralelo2():
while True:
time.sleep(0.5)
print(f"\t\tB0.5")
hilo = th.Thread(target=paralelo)
hilo.start()
hilo2 = th.Thread(target=paralelo2)
hilo2.start()

En este ejemplo, se usa un Slider y un Hilo para contar cada segundo y mostrar cada segundo
import tkinter as tk
import time
import threading as th
#Funciones a utilizar
def cambio(variable):
etiqueta.set(variable)
time.sleep(0.1)
def contadorcito():
global cont
cont=0
while True:
cont+=1
etiqueta2.set(cont)
time.sleep(1)
w = tk.Tk()
w.geometry("400x300")
etiqueta = tk.StringVar()
etiqueta.set(0)
etiqueta2 = tk.StringVar()
etiqueta2.set(0)
#Definicion del hilo1
hilo = th.Thread(target=contadorcito)
hilo.start()
fm = tk.Frame(w)
fm.place(relx=0.22,rely=0.05)
sl=tk.Scale(fm,from_=0,to=20,orient="horizontal",length=200,command=cambio)
sl.grid(row=0,column=1,padx=10,pady=10)
lasiu = tk.Label(fm,textvariable=etiqueta)
lasiu.grid(row=1,column=1,padx=10,pady=10)
lasiu2 = tk.Label(fm,textvariable=etiqueta2)
lasiu2.grid(row=2,column=1,padx=10,pady=10)
variable = sl.get()
w.mainloop()
