Есть ли способ завершить все процессы при использовании многопроцессорной обработки в Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли способ завершить все процессы при использовании многопроцессорной обработки в Python?

Сообщение Anonymous »

Я новичок в Python, и мне хотелось бы найти способ проверить, смогу ли я завершить все процессы одновременно, когда получу желаемый результат, и поместить его в один из процессов. Я пробовал много вещей, таких как sys.exit() и другие, но это никогда не работало.
Это мой код

Код: Выделить всё

import requests
import multiprocessing
import time
start_time = time.time()
def one():

global start_time
for n in range(1000, 4000):
answer = requests.post('https://www.guessthepin.com/prg.php', data={'guess': n})
if "Holy Moley!" not in str(answer.text):
print("The pin is not", n)
continue
print(f"THE PIN IS: {n}")
end_time = time.time()
print(f"Time taken: {(end_time - start_time) / 60} minutes")
sys.exit()
def two():

global start_time
for n in range(4000, 7000):
answer = requests.post('https://www.guessthepin.com/prg.php', data={'guess': n})
if "Holy Moley!" not in str(answer.text):
print("The pin is not", n)
continue
print(f"THE PIN IS: {n}")
end_time = time.time()
print(f"Time taken: {(end_time - start_time) / 60} minutes")
sys.exit()

def three():

global start_time
for n in range(7000, 10000):
answer = requests.post('https://www.guessthepin.com/prg.php', data={'guess': n})
if "Holy Moley!" not in str(answer.text):
print("The pin is not", n)
continue
print(f"THE PIN IS: {n}")
end_time = time.time()
print(f"Time taken: {(end_time - start_time) / 60} minutes")
sys.exit()
def four():
global start_time
for n in range(0, 1000):
zero_thousand = f'{n:04}'
request = requests.post('https://www.guessthepin.com/prg.php', data={'guess': zero_thousand})
if "Holy Moley!" not in str(request.text):
print("The pin is not", zero_thousand)
continue
print(f"THE PIN IS: {n}")
end_time = time.time()
print(f"Time taken: {(end_time - start_time) / 60} minutes")
sys.exit()
if __name__ == "__main__":
start_time = time.time()
p1 = multiprocessing.Process(target=one)
p2 = multiprocessing.Process(target=two)
p3 = multiprocessing.Process(target=three)
p4 = multiprocessing.Process(target=four)
p1.start()
p2.start()
p3.start()
p4.start()
p1.join()
p2.join()
p3.join()
p4.join()
print("Done!")
end_time = time.time()
print(f"Time taken: {(end_time - start_time)/60} minutes")

Итак, я хотел отправить запросы на веб-сайт, проверить правильность PIN-кода и двигаться дальше. Несмотря на то, что часть запросов работает, когда я использую многопроцессорную обработку и получаю правильный PIN-код, вместо завершения всех процессов она продолжает работать до тех пор, пока не проверит все числа.

Подробнее здесь: https://stackoverflow.com/questions/786 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»