Я хочу получить все комбинации символов (одинаковые позиции, только чередование в верхнем и нижнем регистре) из определенного слова, а затем получить ха 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