Python: Запуск функции в потоке не изменяет current_thread ()

В настоящее время я пытаюсь понять, как работают потоки в python.

У меня есть следующий код:

def func1(arg1, arg2): print current_thread() .... class class1: def __init__(): .... def func_call(): print current_thread() t1 = threading.Thread(func1(arg1, arg2)) t1.start() t1.join() 

Я заметил, что оба вывода выводят одно и то же. Почему нить не меняется?

2 Solutions collect form web for “Python: Запуск функции в потоке не изменяет current_thread ()”

Вы выполняете функцию вместо ее передачи. Попробуйте это вместо этого:

 t1 = threading.Thread(target = func1, args = (arg1, arg2)) 

Вы вызываете функцию до того, как она будет передана конструктору Thread . Кроме того, вы указываете его как неправильный аргумент (первым позиционным аргументом конструктора Thread является group ). Предполагая, что func1 возвращает None то, что вы делаете, эквивалентно вызову threading.Thread(None) или threading.Thread() . Это объясняется более подробно в документах по потокам .

Чтобы заставить ваш код работать, попробуйте следующее:

 t1 = threading.Thread(target=func1, args=(arg1, arg2)) t1.start() t1.join() 
  • Возможны ли асинхронные модели Django?
  • Изучение модуля Queue в python (как его запустить)
  • IronPython throw InsufficientMemoryException при использовании numpy в потоках
  • Потоковая обработка Python, по-видимому, последовательно запускает потоки
  • Как правильно завершить QThread из приложения GUI?
  • Первый раз попытка потоковой передачи с использованием concurrent.futures-Почему я не получаю никакого вывода?
  • Python - одновременно запускать две команды
  • Запросы Python, предупреждение: urllib3.connectionpool: пул соединений заполнен
  • Связь между потоками в PySide
  • Python: потоки или многопроцессорность?
  • Почему этот скрипт Python работает на 4 раза медленнее на нескольких ядрах, чем на одном ядре
  •  
    Interesting Posts for Van-Lav

    Метод Python win32com для переноса слов в Excel?

    Как обрабатывать кодировку ответа из urllib.request.urlopen ()

    Как разбить вектор на столбцы – используя PySpark

    повысить ImgurClientError («JSON-декодирование ответа не удалось».) imgurpython.helpers.error.ImgurClientError: JSON-декодирование ответа не удалось

    Модуль CSV Python – котировки пропадают

    Определить псевдонимы методов в Python?

    Смутно о модулях и функциях python

    Использование resample для выравнивания нескольких временных рядов в пандах

    Что означает эта ошибка: TypeError: аргумент 1 должен быть pygame.Surface, а не pygame.Rect

    Извлечь индексы массива, которые содержат определенное значение

    Перечислите все доступные маршруты в Flask, а также соответствующие docstrings

    Загрузка ошибки формата svmlight

    Каков наилучший способ получить полуночный уникальный идентификатор (не последовательный) для объектов базы данных

    python ctype, инициализирующий структуру

    Многопроцессорная обработка Socketserver.Process запускается без вызова start ()

    Python - лучший язык программирования в мире.