Python с использованием многопоточности

#python #python-3.x #multithreading

Вопрос:

 import threading
from time import time

def count(n):
    for i in range(1,n 1):
        print(i)


def count2(n):
    for i in range(1,n 1):
        print(i)

def count3(n):
    for i in range(1,n 1):
        print(i)





x = threading.Thread(target=count,args=(10,))
x.start()

y  = threading.Thread(target=count2,args=(10,))
y.start()

y  = threading.Thread(target=count3,args=(10,))
y.start()
 

я решил изучить многопоточность python , нашел этот код и вывел

 1
2
3
1
4
1
2
2
3
3
5
4
6
5
7
8
6
9
4
5
6
7
8
9
10
7
8
9
10
10
 

кто-нибудь может объяснить мне, почему это вывод ? и как это работает ?
я хочу запустить многопоточную обработку с селеном.

как лучше всего понять, как работает многопоточность в python3

Комментарии:

1. Ну, этот код запускает 3 потока, которые печатают числа от 1 до 10 каждый. Потоки работают параллельно, поэтому вывод не имеет порядка.

2. Не могли бы вы, пожалуйста, уточнить, какие части вывода вы понимаете? Предположительно, у вас есть какие-то ожидания относительно того, что делает написанная вами программа, не так ли?


Ответ №1:

Он выглядит нормально и функционирует должным образом. «Поток», который вы можете понять, поскольку он подготавливает различные пути для совместного выполнения потока программирования. Система не будет в порядке, потому что работает параллельно. Если, допустим, вы хотите быть в определенной последовательности, то вам нужно какое-то обходное решение, чтобы оно выглядело более «презентабельно», как функция события «Event.Set()» в Python.