Форум сайта python.su
Такой код запускает 32 пинг завершающихся в разное время,
import random import subprocess from threading import Thread results = [] start_processes = 32 def run_command(count, result_storage): cmd = str(subprocess.check_output(['ping', '-c', f'{body}', 'google.' + 'com'], text=True)) result_storage.append(cmd) threads = [] for _ in range(start_processes): ch = random.choices('1234567890', k=2) body = (''.join(ch)) print(body) t = Thread(target=run_command, args=[body, results]) t.start() threads.append(t) for t in threads: t.join()
Офлайн
Сделай один контролирующий процесс и регистрируй в нём запускающиеся процессы. Он же и проверяет их количество в цикле и выполняет дозапуски.
Офлайн
py.user.nextЕсть пример такого кода?
Сделай один контролирующий процесс и регистрируй в нём запускающиеся процессы. Он же и проверяет их количество в цикле и выполняет дозапуски.
Офлайн
Первая счылка в гугле. https://docs-python.ru/standart-library/modul-threading-python/poluchenie-obschih-svedenij-potokah-modul-threading/
Офлайн
RodegastНо не понятен, код такой 12 едениц пишет в консоль:
Первая счылка в гугле. https://docs-python.ru/standart-library/modul-threading-python/poluchenie-obschih-svedenij-potokah-modul-threading/
import threading, time def worker(firefox): time, sleep(3) for _ in range(12): thread = threading.Thread(target=worker) thread = threading.active_count() n_thread = threading.active_count() print (n_thread)
import random import subprocess from threading import Thread results = [] start_processes = 32 def run_command(count, result_storage): cmd = str(subprocess.check_output(['ping', '-c', f'{body}', 'google.' + 'com'], text=True)) result_storage.append(cmd) threads = [] for _ in range(start_processes): ch = random.choices('1234567890', k=2) body = (''.join(ch)) print(body) t = Thread(target=run_command, args=[body, results]) t.start() threads.append(t) for t in threads: t.join()
Отредактировано gelius (Фев. 5, 2023 10:24:14)
Офлайн