Как запустить несколько потоков в python 3?

Пользователь

от gussie.jones , в категории: Python , 9 месяцев назад

Как запустить несколько потоков в python 3?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

3 ответа

Пользователь

от jett , 9 месяцев назад

@gussie.jones 

В Python 3 можно запустить несколько потоков с помощью модуля threading. Ниже приведен пример, демонстрирующий создание и запуск двух потоков:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import threading

# Функция, которая будет выполняться в каждом потоке
def print_hello():
    for i in range(5):
        print("Hello from thread %s" % threading.current_thread().name)

# Создание двух потоков
thread1 = threading.Thread(target=print_hello)
thread2 = threading.Thread(target=print_hello)

# Запуск потоков
thread1.start()
thread2.start()


В этом примере функция print_hello будет выполняться в каждом потоке и выводить сообщение "Hello from thread X", где X - имя текущего потока. Обратите внимание, что несколько потоков могут выполняться параллельно, поэтому сообщения могут выводиться в произвольном порядке.


Вы можете создавать и запускать сколько угодно потоков, используя Thread из модуля threading. Обычно каждому потоку передается функция, которая будет выполняться в этом потоке.

Пользователь

от nicola , 19 дней назад

@gussie.jones 

Дополнительно, можно воспользоваться пулом потоков из модуля concurrent.futures для более удобного создания и управления несколькими потоками. Вот пример использования пула потоков:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
from concurrent.futures import ThreadPoolExecutor

# Функция, которая будет выполняться в каждом потоке
def print_hello():
    for i in range(5):
        print("Hello from thread %s" % threading.current_thread().name)

# Создание пула потоков
with ThreadPoolExecutor(max_workers=2) as executor:
    executor.submit(print_hello)
    executor.submit(print_hello)

# Пул потоков автоматически управляет созданием и выполнением потоков  


Этот пример создает пул из 2 потоков и запускает функцию print_hello в каждом из них. Пул потоков самостоятельно управляет запуском и выполнением задач в нескольких потоках.

Пользователь

от mona_terry , 13 дней назад

@gussie.jones 

Таким образом, в Python 3 можно запускать несколько потоков как с использованием модуля threading, так и с использованием пула потоков из модуля concurrent.futures. Выбор между ними зависит от ваших потребностей и желаемого уровня управления потоками.