Python: Как заполнить массив предварительно заданного размера из декартового произведения в al oop, а затем запустить многопоточную функцию для его обработки? - PullRequest
0 голосов
/ 07 апреля 2020

Я хочу получить все комбинации символов (одинаковые позиции, только чередование в верхнем и нижнем регистре) из определенного слова, а затем получить ха sh от каждого из них в фоновом процессе. Мой код (официальный, здесь только практический пример) работает очень хорошо, создавая потоки для всего этого. В процессе производства я хочу заполнить массив / список хотя бы каждые 200 словосочетаний, чтобы запустить многопоточную функцию и обработать эти данные.

Мой пример кода:

from itertools import product

def get_sha256(x):
  hash = hashlib.sha256(x().encode('utf-8')).hexdigest()
  print(hash)

result = product("aA","bB","cC","dD","eE","fF","hH")
for permutation in result:
  thread = get_sha256(''.join(permutation))
  thread.start()

В приведенном выше коде мы начинаем новую ветку для каждой комбинации, но в большом декартовом продукте она будет sh даже самым большим сервером. Мне нужно передать прецизионный массив / список, а затем запустить фоновый поток после N значений, а не для каждого значения. Можно ли сделать что-то вроде «для перестановки [100] в результате:» сделать l oop от 100 до 100 значений?

Желательно контролировать потоки, определяющие некоторый «максимальный поток» и, возможно, Семафор, чтобы остановить l oop и подождать, пока какой-нибудь поток продолжит передавать прецизионные блоки данных в функцию sha256.

Python 3.7

...