@MarkSmersh

Почему сначала заканчивается 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()


Вывод:
0
1
2
3
4
5
6
7
8
9
func1 has started
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
t = threading.Thread (target = func1())
Ты запускаешь поток, в качестве тела которого указываешь то, что вернула после вызова func1.
Это None, и поток ничего не делает.
Исправь на
t = threading.Thread (target = func1)
Нужно запомнить разницу:
func1 - ссылка на функцию
func1() - результат вызова функции без параметров
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы