Почему сначала заканчивается func1, а уж потом выводит, что func1 началась?
Код:
import time
import threading
def func1():
time.sleep (1)
for x in range (10):
print (x)
time.sleep (.5)
def func2():
t = threading.Thread (target = func1())
t.start ()
print ('func1 has started')
func2()
t = threading.Thread (target = func1())
Ты запускаешь поток, в качестве тела которого указываешь то, что вернула после вызова func1.
Это None, и поток ничего не делает.
Исправь на
t = threading.Thread (target = func1)
Нужно запомнить разницу:
func1 - ссылка на функцию
func1() - результат вызова функции без параметров