Вот пример для изучения, 2 функции выполняются не зависимо друг от друга. Для примера одна с бесконечным циклом, вторая с конечным, первая продолжит выполняться не зависимо от того что завершилась вторая.
from threading import Thread
from time import sleep
def print_some1(txt):
while True:
print(f'{print_some1.__name__} - {txt}')
sleep(.5)
def print_some2(txt, n):
while n < 10:
n += 1
print(f'{print_some2.__name__} - {txt}')
sleep(.75)
if __name__ == '__main__':
text = 'some text message'
Thread(target=print_some1, args=(text,)).start()
Thread(target=print_some2, args=(text, 1)).start()