Как постоянно поддерживать одинаковое количество потоков на Python?Python

Программы на Python
Ответить
Anonymous
 Как постоянно поддерживать одинаковое количество потоков на Python?

Сообщение Anonymous »

Это часть моего кода.
Например, даже если 3 из 10 завершаются первыми, я хочу, чтобы следующие 3 запускались сразу и всегда поддерживали 10 потоков.
Однако текущий код переходит к следующим 10 только тогда, когда все 10 полностью завершены.
Как я могу изменить код?
Я всегда хочу сохранить определенное количество потоков, но в нынешнем виде мне нужно полностью завершить предыдущие 10 потоков, прежде чем перейти к следующим 10.
import concurrent.futures
import time

def example_task(n):
print(f"Task {n} started.")
time.sleep(n)
print(f"Task {n} completed.")
return n

with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:
futures = []

for i in range(10):
futures.append(executor.submit(example_task, i+1))

for future in concurrent.futures.as_completed(futures):
try:
result = future.result()
print(f"Result of task: {result}")

next_task = len(futures) + 1
futures.append(executor.submit(example_task, next_task))
except Exception as e:
print(f"Error: {e}")
Ответить

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

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

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

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

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